プロシージャを作成する場合:
CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS IS
BEGIN
SYS.DBMS_STATS.GATHER_TABLE_STATS( 'SchName', 'TableName', CASCADE => TRUE);
END;
そしてそれを実行します。
EXEC SchameB.PRC_GATHER_STATS;
これは私にエラーを与えますORA-20000: Unable to analyze TABLE "SchameA"."TableName", insufficient privileges or does not exist
。しかし、これは機能します:
EXEC SYS.DBMS_STATS.GATHER_TABLE_STATS( 'SchameA', 'TableName', CASCADE => TRUE);
プロシージャとテーブルのユーザーEXEC
は異なるスキーマにあります。
プロシージャを介してこれを実行するとエラーが発生するのはなぜですか?