ストアド プロシージャを使用して、カーソルを使用してレコードを選択しています。このプロシージャは、レコード ID を入力として取得します。
コードは次のとおりです。
create or replace
procedure GET_ITEM_DETAILS_ALL
(
cur_out out sys_refcursor,
PSTRING VARCHAR2 DEFAULT NULL
)
is
query_string VARCHAR2(1000);
Begin
query_string := 'Select IT.SL_NO from ITEM_DETAILS IT where IT.SL_NO in (:sl) order by IT.SL_NO';
OPEN cur_out FOR query_string USING PSTRING;
End;
プロシージャの呼び出し/テストには、以下のコードを使用します。
VAR R REFCURSOR
EXEC GET_ITEM_DETAILS_ALL (:R, '4')
PRINT R
問題は、'4' や '2' などの単一の整数を渡すとプロシージャがデータを返しますが、'1,2' または '3,4' を渡すとエラーが表示されることです。