この関数の一部として、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