0

この関数の一部として、Oracle データベースに書き込む VB.NET アプリケーションがあります。アプリケーションを起動すると、1回の反復で完全に正常に動作しますが、アプリケーションがまだ開いている間にデータベースに再度書き込もうとすると、次のエラーが発生します。

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

そして、Oracle SQLでの私のプロシージャは

create or replace
PROCEDURE     insertintoracosent(
    p_phone            IN RACOSENT.PHONE%TYPE,
    p_msg              IN RACOSENT.MESSAGE%TYPE)
IS
BEGIN
  INSERT INTO racosent
  VALUES (seq_sent.nextval, p_phone, p_msg, sysdate);
END;

私のVB.NETコードは

 Sub orclSendSMS(ByRef cbManNum As String, ByRef cbManMsg As String)
    If orcl.State = ConnectionState.Closed Then orcl.Open()
    myCMD.Connection = orcl
    myCMD.CommandText = "insertintoracosent"
    myCMD.CommandType = CommandType.StoredProcedure
    Dim num As OracleParameter = New OracleParameter("p_phone", OracleDbType.Int64, ParameterDirection.Input)
    Dim msg As OracleParameter = New OracleParameter("p_msg", OracleDbType.Varchar2, ParameterDirection.Input)
    num.Value = Convert.ToInt64(cbManNum)
    msg.Value = cbManMsg
    myCMD.Parameters.Add(num)
    myCMD.Parameters.Add(msg)
    Try
        myCMD.ExecuteNonQuery()
    Catch ex As Exception
        MsgBox(ex.ToString)
        Exit Sub
    End Try
End Sub
4

1 に答える 1

2

myCMDを再初期化していないようですが?では、パラメーターコレクション内のパラメーターの数は毎回2ずつ増えますか?

やってみてくださいmyCMD.Parameters.Count

于 2012-10-18T19:49:35.043 に答える