我的代碼的錯誤名稱/號碼:Oracle。查詢中的參數。可變
oracleCom.CommandText = @"declare P_ID tbl_objects.i_id%TYPE;
BEGIN
UPDATE tbl_objects
SET i_status_id = 234
WHERE s_code = '" + objectsChanged[j] +
@"' RETURNING i_id INTO P_ID;
:param_id := P_ID;
END;";
oracleCom.Parameters.Add("param_id", OracleType.Number).Direction = ParameterDirection.Output;
try
{
oracleCom.ExecuteNonQuery();
}
catch
{----------}
編譯器生成一個錯誤:變量的 錯誤名稱/號碼。 但是當我在pl/sql開發者中使用這個sql時,一切正常。
此代碼正常工作:
OracleCommand oracleCom = new OracleCommand
{
Connection = oraConnect,
CommandText = @"declare P_ID tbl_objects.i_id%TYPE;
BEGIN insert into tbl_objects
(s_code, i_status_id)
values
(:s_code, 234)
RETURNING I_ID INTO :p_id;
END;"
};
如果這是一個編譯器錯誤,與運行時錯誤相反,這意味着在Java代碼中存在錯誤,而不是PL/SQL字符串中的錯誤。編譯器表示有什麼錯誤? –
在PL/DEVELOPER中,它正常工作 – user1848942