MetaTableName 列に 48 個のテーブル名を挿入した 1 つのテーブル "Meta_Data_Table_Names" を作成しました。行数と対応するテーブル名を提供する別の列があります。
「Meta_Data_Table_Names」からテーブル名を取得し、検証のためにループを介して SELECT クエリを順次実行したいと考えました。TOAD から実行するたびに、エラーがスローされます: テーブルまたはビューが存在しません。
スキャン可能な「Meta_name」のプレースホルダーを作成する必要がありますか? または、クエリ中に値を読み取るための特定の構文はありますか?
DECLARE
CURSOR c1 IS SELECT MetaTableName FROM Meta_Data_Table_Names;
CURSOR c2 IS SELECT ROW_COUNT FROM Meta_Data_Table_Names;
Meta_name Meta_Data_Table_Names.MetaTableName%TYPE;
Count_num Meta_Data_Table_Names.ROW_COUNT%TYPE;
BEGIN
OPEN c1;
OPEN c2;
FOR i IN 1..48 LOOP
FETCH c1 INTO Meta_name;
FETCH c2 INTO Count_num;
IF (Count_num > 2000)
THEN
SELECT * FROM Meta_Name X
MINUS
SELECT * from ASFNCWK07.Meta_Name@NCDV.US.ORACLE.COM Y
UNION ALL
SELECT * FROM ASFNCWK07.Meta_Name@NCDV.US.ORACLE.COM Y
MINUS
SELECT * FROM Meta_Name X;
ELSE
DBMS_OUTPUT.PUT_LINE ('No Validation is required');
END IF;
END LOOP;
END;