あるユーザーのテーブルから別のスキーマにデータをコピーするためのストアドプロシージャを作成しています。基本的に、これは一連のINSERT..SELECTステートメントです。
INSERT INTO GESCHAEFTE
SELECT *
FROM TURAT03.GESCHAEFTE
WHERE kong_nr = 1234;
これは、sqlplus(または私にとってはTOAD;-))から発行する場合は正常に機能するため、十分な特権があることはわかっていますが、これが次のようなストアドプロシージャの一部である場合:
CREATE OR REPLACE FUNCTION COPY_KONG
(pKongNr IN NUMBER)
RETURN NUMBER
AUTHID CURRENT_USER
IS
BEGIN
INSERT INTO GESCHAEFTE
SELECT *
FROM TURAT03.GESCHAEFTE
WHERE kong_nr = pKongNr;
END;
Oracleエラーが発生します:
[Error] ORA-00942 (11: 22): PL/SQL: ORA-00942: table or view does not exist
ご覧のとおり、私はすでにを挿入しましたAUTHID
が、役に立ちません。
他に何ができますか?私はここで私の考えのほとんど終わりにいます。