1つの方法は、VARRAY
を使用することです。 PARAM_THAT_WILL_BE _USED_INSIDE_WHERE_IN
の場合 パラメータを設定し、ここで説明されているように使用します
ただし、c#から呼び出す方法はわかりません。
もう1つの方法は、質問で述べたようにcsvでvarchar2を使用することですが、次のように動的SQLを使用しません。
CREATE PROCEDURE MY_TEST_PROC(
CUR OUT SYS_REFCURSOR,
PARAM_THAT_WILL_BE varchar2)
AS
BEGIN
OPEN CUR FOR
SELECT *
FROM MY_TABLE
WHERE COL1 IN (
select regexp_substr(PARAM_THAT_WILL_BE, '[^,]+',1,level) p
from dual t
connect by level <= regexp_count(PARAM_THAT_WILL_BE, ',') + 1
)
END;