[200分]调用oracle存储过程 同样代码,一台机子正常,一台机子报错,急救!

德仔 德仔 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
调用oracle存储过程 同样代码,一台机子正常,一台机子报错,急救!

报错如下:

ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'INSERTTOEBSCODE'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


调用的类是这样的:

/// <summary>
/// 插入已OK的价格至EBS中
/// </summary>
/// <param name="priceForm"></param>
/// <returns></returns>
public bool InsertToEBS(Entity.CAS.PriceFormInfo priceForm)
{
OracleParameter[] parameters =
{
new OracleParameter("P_PRICEFORMID",OracleType.VarChar,20),
new OracleParameter("P_VENDOR_CODE",OracleType.VarChar,20),
new OracleParameter("P_VENDOR_SITE_CODE",OracleType.VarChar,20),
new OracleParameter("P_VAT_CODE",OracleType.VarChar,20),
new OracleParameter("P_ITEM_CODE",OracleType.VarChar,20),
new OracleParameter("P_EFFECTIVE_DATE",OracleType.VarChar,20),
new OracleParameter("P_PURCHASER",OracleType.VarChar,20),
new OracleParameter("P_CHECKER",OracleType.VarChar,20),
new OracleParameter("P_AUDITOR",OracleType.VarChar,20),
new OracleParameter("P_POCT",OracleType.VarChar,10),
new OracleParameter("P_UNIT_PRICE",OracleType.VarChar,20),
new OracleParameter("P_PASSED_DATE",OracleType.VarChar,20),
new OracleParameter("P_TERMS_DESC",OracleType.VarChar,100),
new OracleParameter("v_retval",OracleType.Number)

};





parameters[0].Value = priceForm.FormID.ToString();
parameters[1].Value = priceForm.SupplierCode;
parameters[2].Value = priceForm.Vendor_site_code;
parameters[3].Value = priceForm.Tax.ToString();
parameters[4].Value = priceForm.MaterialCode.Trim();


DateTime effectiveDate= Convert.ToDateTime(priceForm.EffectiveDate.ToString());

DateTime passedDate= Convert.ToDateTime(priceForm.PassedDate.ToString());



if (priceForm.EffectiveDate > priceForm.PassedDate)
{


parameters[5].Value = effectiveDate.ToString("yyyy-MM-dd hh:mm:ss");


}
else
{
parameters[5].Value = passedDate.ToString("yyyy-MM-dd hh:mm:ss");
}
parameters[6].Value = priceForm.Purchaser;
parameters[7].Value = priceForm.Checker;
parameters[8].Value = priceForm.Auditor;
parameters[9].Value = priceForm.POCT;
parameters[10].Value = priceForm.Price.ToString();
parameters[11].Value = passedDate.ToString("yyyy-MM-dd hh:mm:ss");
parameters[12].Value = priceForm.Payment.ToString().Trim();
parameters[13].Direction=ParameterDirection.Output;



try
{
Convert.ToInt32(OracleHelper.ExecuteNonQuery(OracleHelper.ConnectionStringProfile, CommandType.StoredProcedure, "BBKEDU_PO_CAS_PRICE_PKG.InsertToEBSCode", parameters));

int retval = Convert.ToInt32(parameters[13].Value);

if (retval == 1)
{
return true;
}
else

return false;
}
catch (Exception ee)
{
throw ee;
}
finally
{

}

包中的存储过程:

create or replace package BBKEDU_PO_CAS_PRICE_PKG is

-- Author : EASTJAZZ
-- Created : 2009-10-16 0:29:13
-- Purpose :

procedure InsertToEBSCode(P_PRICEFORMID IN VARCHAR2,
P_VENDOR_CODE IN VARCHAR2,
P_VENDOR_SITE_CODE IN VARCHAR2,
P_VAT_CODE IN VARCHAR2,
P_ITEM_CODE IN VARCHAR2,
P_EFFECTIVE_DATE in VARCHAR2,
P_PURCHASER IN VARCHAR2,
P_CHECKER IN VARCHAR2,
P_AUDITOR IN VARCHAR2,
P_POCT IN VARCHAR2,
P_UNIT_PRICE IN VARCHAR2,
P_PASSED_DATE IN VARCHAR2,
P_TERMS_DESC IN VARCHAR2,
v_retval out number);

end BBKEDU_PO_CAS_PRICE_PKG;





我查了好多的贴子,都没有看到类似问题解决办法,不知兄弟们或哪们同仁碰到过同样的问题,提供相关的解决思路,谢谢。


按报错来看,我将所有的类型改成字符类型均不行。在本机测试非常正常,放至服务器上报错。本机是WINXP系统,服务器是win2000英文操作系统,不知是不是这个原因,如果是,又如何解决呢?


急救!谢谢。帮顶有分.
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
德仔
C# 111,129 成员 642,540 内容