0
ループ内でクエリを実行し、各クエリの結果をカーソルに格納するには、clobのデータを使用する必要があります。しかし、私はどのように/どこにカーソルを開くか分からない。私はループでそれを行う場合、私は最後のクエリのデータだけが存在すると仮定します。PL SQLプロシージャのカーソル内のループ内に問合せの結果を入れる方法は?
このような状況になる方法は何ですか。
これは私が達成しようとしているものです:
https://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-cursor-example/
PROCEDURE PRC(
P_DATE IN VARCHAR,
P_CLOB IN CLOB,
P_CUR OUT SYS_REFCURSOR
) IS
V_DATE DATE;
V_STR VARCHAR;
BEGIN
V_DATE := TO_DATE(P_DATE, 'DD/MM/YYYY');
V_CLOB_LENGTH := DBMS_LOB.getlength(P_CLOB);
V_START_CHAR := 1;
V_LEN := 5;
WHILE (V_START_CHAR + V_LEN) <= V_CLOB_LENGTH
LOOP
V_STR := SUBSTR(
P_CLOB,
V_START_CHAR,
V_LEN
);
V_START_CHAR := V_START_CHAR + V_LEN;
OPEN P_CUR FOR /* I know this is wrong */
SELECT A , B, C
FROM TAB
WHERE DATE = V_DATE
AND COL = V_STR;
END LOOP;
END PRC;
あなたは、すべてのループ反復でカーソルを開くことができますと言う:開いているカーソルで何をしたいですか? – Aleksej
カーソルはクエリ結果を格納しないので、何をしようとしているのか分かりません。 –
カーソルにデータを格納することはできません。異なるフィルタを使用して繰り返しごとにカーソルを実行するには、カーソルパラメータを使用する必要があります。例:https://docs.oracle.com/cloud/latest/db112/LNPLS/static.htm#BABHBHIC – Yellow75