異なる環境に存在するテーブルからテーブルにデータを挿入する必要があります。 envリストは、my_envテーブルから取得されます。PLSQL:tovable名を動的に維持しながら、別のテーブルにmayvsの1つのテーブルを挿入する
DECLARE
WRK_STS VARCHAR2(2) := 'PP';
MY_ENV VARCHAR2(50) := '';
WRK_ENV NUMBER(6) := 0;
BEGIN
FOR t in (SELECT DISTINCT(envid) FROM MY_ENV ORDER BY ENVID ASC)
LOOP
WRK_ENV := WRK_ENV+1;
MY_ENV := 'ENV_' || t.envid || '.table002';
INSERT INTO MYTAB101(DATE,STS, MYENV, nAME, DESCR, MYTYPE)
SELECT null, ' || WRK_STS|| ',' || WRK_ENV || ',NAME, DESCR,MYTYPE from ' || MY_ENV;
END LOOP;
EXCEPTION
/*Handle exception*/
END;
/
COMMIT;
しかし、私はエラーが取得しています:
ORA-06550:行15、列61:PLを私の場合のためにENVSの数は、ENV名iは下のように書きましたので、ダイナミックになりそう異なります/ SQL:ORA-00942:表またはビューが存在しませんORA-06550:行12、列3:PL/SQL:SQL文が無視される06550. 00000 - "行%s、列%s:\ n%s" *原因通常はPL/SQLコンパイル・エラーです。 *アクション:コミット。
私は直接それが
「ENV368.table002から」同じように動作したenv名を入力すると、誰かがここで間違っているものを提案することができますか?
ありがとうございました!
。 EXECUTE IMMEDIATEを使用する必要があります – OldProgrammer
私はすぐにexceuteを試みました: EXECUTE IMMEDIATE 'INSERT INTO MYTAB101(DATE、STS、MYENV、NAME、DESCR、MYTYPE) SELECT NULL、' || WRK_STS || '、' || WRK_ENV || '、NAME、DESCR、MYTYPEから' || MY_ENV; これもエラー – Mishti
です。エラーは何ですか? – OldProgrammer