私のコード:
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;"
};