I'm trying to update a table via a stored procedure from asp.net. I get the following error message: "wrong number or types of arguments in call to 'UPDATE_DIRECT_BILL_DETL_SP'"
I just can't seem to figure out what is wrong. I believe I may not be using the correct Oracle variable types in my Cmd.Parameter.Add statements.
I appreciate any help that can be provided!
Thank you.
Here are the details:
I'm using Oracle.DataAccess.dll (ODP.NET)
Here is my function:
Public Function UpdateDirectBill(ByVal invDetID As Int32, ByVal appNum As String, _
ByVal lastUpdtByNm As String) As Int32
Dim numRecUpdated As Int32 = 0
Cmd.CommandType = CommandType.StoredProcedure
Cmd.CommandText = "UPDATE_DIRECT_BILL_DETL_SP"
'These are the values I'm using for the params
invDetID = 1
appNum = "3333"
lastUpdtByNm = "N015058"
Cmd.Parameters.Add("invDetID", OracleDbType.Int32, invDetID, ParameterDirection.Input)
Cmd.Parameters.Add("appNum", OracleDbType.Varchar2, appNum, ParameterDirection.Input)
Cmd.Parameters.Add("lastUpdtByNm", OracleDbType.Varchar2, lastUpdtByNm, ParameterDirection.Input)
Cmd.Parameters.Add("numRecUpdated", OracleDbType.Int32, numRecUpdated, ParameterDirection.Output)
Conn.Open()
Cmd.ExecuteNonQuery()
Conn.Close()
Dim recsUpdated As Int32 = Convert.ToInt32(Me.Cmd.Parameters("numRecUpdated").Value.ToString())
Return recsUpdated
End Function
My Stored Procedure:
PROCEDURE UPDATE_DIRECT_BILL_DETL_SP
(invDetID IN invoice_detail.invoice_detail_id%TYPE,
appNum IN invoice_detail.application_num%TYPE,
lastUpdateNm IN invoice_detail.last_update_by_nm%TYPE,
rowCnt OUT number)
IS
BEGIN
UPDATE INVOICE_DETAIL A
SET
A.APPLICATION_NUM=appNum,
A.LAST_UPDATE_BY_NM = lastUpdateNm,
A.LAST_UPDATE_BY_DT=SYSDATE
WHERE A.INVOICE_DETAIL_ID=invDetID;
rowCnt := SQL%ROWCOUNT;
if rowCnt = 1 then
COMMIT;
ELSE
ROLLBACK;
END IF;
END UPDATE_DIRECT_BILL_DETL_SP;
The columns I'm updating are of the following types:
invDetID IN invoice_detail.invoice_detail_id%TYPE of type Number
appNum in invoice_detail.application_num%TYPE of type Varchar2(10 byte)
lastUpdateNm IN invoice_detail.last_update_by_nm%TYPE of type Varchar2(50 byte)
{ }button.