我有一個使用Oracle數據庫的ASP.NET Web應用程序(VB.NET)。在插入時,我需要獲取插入行的標識。我正在嘗試使用RETURNING,但我一直得到返回值1。在Oracle中返回INSERT沒有返回正確的值
Dim strInsert As String = "INSERT INTO L.TRANSACTIONS (LOCATION_KEY, TRANS_CREATOR, TRANS_EMAIL, TRANS_PHONE) VALUES (:location_key, :trans_creator, :trans_email, :trans_phone) RETURNING TRANS_ID INTO :ukey"
Try
If oConn.State <> ConnectionState.Open Then
oConn.Open()
End If
Dim oCmnd As New OracleCommand(strInsert, oConn)
oCmnd.Parameters.Add("location_key", Session.Item("location").ToString.Trim())
oCmnd.Parameters.Add("trans_creator", Session.Item("userID").ToString.Trim())
oCmnd.Parameters.Add("trans_email", Session.Item("mail").ToString.Trim())
oCmnd.Parameters.Add("trans_phone", Session.Item("phone").ToString.Trim())
oCmnd.Parameters.Add("ukey", Oracle.DataAccess.Client.OracleDbType.Varchar2, System.Data.ParameterDirection.ReturnValue)
Dim strUkey As String = oCmnd.ExecuteNonQuery()
當我運行應用程序時,記錄被插入,TRANS_ID遞增,但返回的值始終爲「1」。
它是一個數據類型的問題?嘗試使ukey int int – jle 2012-03-15 19:51:14
@jle - 編號改變爲一個int16,它仍然返回值爲1.我想知道它是否返回一個真正的布爾值作爲一個int? – monkeypushbutton 2012-03-15 20:04:17