通过vb.net进行简单的插入操作,但收到错误:
ORA-06550:第1行第7列: PLS-00306:调用'PROCEDURE_NAME'时参数的数量或类型错误 ORA-06550:第1行,第7栏:
可能是我失踪或忽略了什么。一些帮助将非常感激。
SQL:
CREATE OR REPLACE procedure SG.PROCEDURE_NAME(
TypeDefinitionFinal in Char,
TypeValueFinal in Char,
ValidFrom in Char,
ValidTo in Char,
MethodType in integer,
MethodValue in number,
Reason in Char,
CurrentTimeStamp in Date,
LoggedUser in Char,
StoresList in Char
) as
begin
INSERT INTO TABLE_NAME
(TYPE_DEFINITION, TYPE_VALUE, VALID_FROM, VALID_TO, METHOD, VALUE, REASON, CREATE_TIMESTAMP, ENTERED_BY)
VALUES
(TypeDefinitionFinal ,TypeValueFinal ,ValidFrom ,ValidTo ,MethodType ,MethodValue ,Reason ,CurrentTimeStamp ,LoggedUser );
end;
/
VB.NET代码:
Dim OraCommand As New OracleCommand("SG.PROCEDURE_NAME", OraConnection)
OraCommand.CommandType = CommandType.StoredProcedure
OraCommand.Parameters.Add(New OracleParameter("TypeDefinitionFinal", OracleType.Char)).Value = TypeDefinitionFinal
OraCommand.Parameters.Add(New OracleParameter("TypeValueFinal", OracleType.Char)).Value = TypeValueFinal
OraCommand.Parameters.Add(New OracleParameter("ValidFrom", OracleType.Char)).Value = ValidFrom
OraCommand.Parameters.Add(New OracleParameter("ValidTo", OracleType.Char)).Value = ValidTo
OraCommand.Parameters.Add(New OracleParameter("MethodType", OracleType.Int32)).Value = MethodType
OraCommand.Parameters.Add(New OracleParameter("MethodValue", OracleType.Number)).Value = MethodValue
OraCommand.Parameters.Add(New OracleParameter("Reason", OracleType.Char)).Value = Reason
OraCommand.Parameters.Add(New OracleParameter("CurrentTimeStamp", OracleType.DateTime)).Value = CurrentTimeStamp
OraCommand.Parameters.Add(New OracleParameter("LoggedUser", OracleType.Char)).Value = LoggedUser
OraCommand.Parameters.Add(New OracleParameter("StoreList", OracleType.Char)).Value = StoreList
OraCommand.ExecuteNonQuery()
答案 0 :(得分:1)
这只是一个参数名称差异。在您的程序定义中,您有:
StoresList in Char
但是在您的VB代码中,您的名称略有不同,缺少s
:
OraCommand.Parameters.Add(New OracleParameter("StoreList", OracleType.Char)).Value = StoreList
将"StoreList"
更改为"StoresList"
,或将程序定义更改为StoreList
- 只要它们匹配,您执行此操作的方式并不重要。