2011-10-24 8 views
1

別の11g環境で正常にコンパイルされたパッケージがあります。
XA 10g環境(DBAユーザー)でコンパイルしようとすると、ORA-00942エラーが発生します。Oracle XE 10g:パッケージまたはプロシージャ内のジョブ・スケジューリング:DBA_SCHEDULER_JOBS

FOR r IN (SELECT DISTINCT job_name jname 
         FROM dba_scheduler_jobs 
          ^
         WHERE job_name LIKE p_job_prefix || '%') 
    LOOP 
     ... 

テーブルで直接選択を実行すると問題はありません。

Select * from dba_scheduler_jobs; 

エラーテキスト:

Line: 34 Column: 34 Error: PL/SQL: ORA-00942: table or view does not exist 

答えて

1

定義者権限ストアドプロシージャ(デフォルト)でオブジェクトを参照するために、プロシージャの所有者は、オブジェクトへの直接アクセスを持っている必要があります。特権はロールを通じて付与することはできません。SYSDBAのような非常に強力なロールです。個別

おそらく、このプロシージャの所有者にあなたはまた、各オブジェクト(すなわちDBA_SCHEDULER_JOBS)に権限を与えることができSELECT ANY DICTIONARY特権

GRANT select any dictionary 
    TO <<owner of procedure>> 

を付与したいが、あなたはすでにこのユーザーにSYSDBA権限を付与した場合あなたはおそらく、助成金の制限にはあまり関心がありません。

+0

ありがとう、GRANTはローカルDEVのために完全に動作する辞書を選択します。 – ScrappyDev

関連する問題