[200分]调用oracle存储过程 同样代码,一台机子正常,一台机子报错,急救!
调用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英文操作系统,不知是不是这个原因,如果是,又如何解决呢?
急救!谢谢。帮顶有分.
报错如下:
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英文操作系统,不知是不是这个原因,如果是,又如何解决呢?
急救!谢谢。帮顶有分.
...全文
相关推荐
C#中调用ORACLE的PACKAGE里方法和存储过程的应用
1、首先在ORACLE里建立如下PACKAGE PACKAGE分SPEC和body两部分 2、C#部分代码
oracle存储过程调用http接口
创建ACL -- 添加acl和权限控制(sql语句执行的方式来执行) begin dbms_network_acl_admin.create_acl ( -- 创建访问控制文件(ACL) acl => 'utl_http.xml', -- 文件名称 description => 'HTTP Access', ...
Oracle存储过程学习经典[语法+实例+调用].
Oracle存储过程基础知识 Oracle存储过程的基本语法 Oracle存储过程的若干问题备忘 用Java调用Oracle存储过程总结 在存储过程中做简单动态查询 Oracle存储过程调用Java方法
Oracle_PLSQL_存储过程
Oracle存储过程基础知识; Oracle存储过程的基本语法; 用Java调用Oracle存储过程总结; 在存储过程中做简单动态查询; Oracle存储过程调用Java方法; Oracle高效分页存储过程实例
delphi如何调用Oracle数据库的存储过程????
调用ORACLE数据库的存储过程


