ストアドで別スキーマのテーブルを参照したい
Oracleのストアドで以下のことを実行したいです。
1.aユーザのaテーブルにあるユーザ情報(=スキーマ名になっています)を取得
2.取得したユーザ情報(=スキーマ名)を元にスキーマ.テーブル名で
テーブルの情報を参照する
3.スキーマ.テーブル名で参照したテーブルの情報を元に
他のテーブルのデータを参照する
1については取得できたのですが、2以降を別ストアドで作成して
スキーマ名を引き渡そうかと思ったのですが、実行すると
「表またはビューが存在しません」と表示されます。
実現できる方法をご教授ください。
CREATE OR REPLACE PROCEDURE del_datatbl(con_user IN VARCHAR2, del_date IN DATE)
IS
TYPE cur_typ IS REF CURSOR;
v_inv_cursor cur_typ; -- Declare a cursor variable
v_inv_query VARCHAR2(200);
v_inv_num NUMBER;
v_inv_cust VARCHAR2(20);
v_inv_amt NUMBER;
w_date DATE;
BEGIN
IF(del_date IS NULL) THEN
w_date := ADD_MONTHS(SYSDATE,-18);
ELSE
w_date := del_date;
END IF;
v_inv_query := 'SELECT clm_mjres_MSEQ FROM '
|| con_user
|| '.T_MNGJRES'
|| ' WHERE TO_CHAR(CLM_MJRES_DATE,'|| 'YYYY/MM/DD'
|| ') <= TO_CHAR(w_date,' || 'YYYY/MM/DD' || ')';
DBMS_OUTPUT.PUT(v_inv_query);
OPEN v_inv_cursor FOR v_inv_query USING v_inv_num;
LOOP
FETCH v_inv_cursor
INTO v_inv_num;
DBMS_OUTPUT.PUT(v_inv_num);
EXIT WHEN v_inv_cursor%NOTFOUND;
END LOOP;
CLOSE v_inv_cursor;
END;
.
run
show errors
補足
すいません。 技術的な話だったんですが、問題なく合格しました。 結局ですが、参考書を何度も読めば受かるって感じでした。