私は2つのテーブルを持っています。 最初の表には、多くの教室 (名前、年齢、教室)plsqlカーソルが異なるスキーマに挿入されます
別の表に、各classromのためのスキーマが含まれています(教室、SCHEMA_NAME)
(したがって、各classrom foがあります異なるスキーマ)
の生徒が含まれていますだから私は各クラスのための異なるスキーマを持っています。私は生徒のテーブルからすべてのデータを取得し、それらを正しいスキーマのターゲットテーブルにコピーする必要があります。 (私は管理者としてログインしています、私はすべてのスキーマへのアクセス権を持っている)
ここでは私の文は次のとおりです。
DECLARE
CURSOR all_pupils
IS
SELECT NAME, AGE, CLASSROOM FROM TABLE_1
BEGIN
FOR pupil_rec
IN all_pupils
LOOP
EXECUTE IMMEDIATE 'INSERT INTO '
|| (Select schema_name FROM TABLE_2 sn WHERE sn.classroom=pupil_rec.CLASSROOM) ||'.TARGET_TABLE '
||'(name, age) VALUES (pupil_rec.name, pupil_rec.age';
END LOOP;
END;
/
私はこのエラーを取得しています:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
私はちょうどPLSQLおよびIを学び始めました私はカーソルでそれをしなければならないと言われました。これが正しいアプローチであるかどうか誰かが私に助けてくれますか?私の構造は正しくないようです。これらのエラーを回避するには
あなたはちょうどあなたが好きなラインの途中に ''(選択を...)ドロップすることはできません。カーソルを拡張して、必要な値を含める必要があります。 –