以下のように表示されます。
(日本語)
PLS-00201: 識別子XXXを宣言してください。
(英語)
PLS-00201: identifier 'XXX' must be declared
XXXにはDBMS_LOCKやオブジェクト名が表示されます。
発生パターン
このエラーは以下のような場合に発生します。
- 表示されたパッケージ(DBMS_LOCKなど)を実行する権限が無い
(例)PLS-00201: 識別子DBMS_LOCKを宣言してください。 - オブジェクト(テーブルなど)を参照(SELECTなど)する権限が無い
対処法
- 対象のパッケージを実行する権限をユーザに付与する
- 対象のオブジェクトを参照する権限をユーザに付与する
例1)ユーザ「taro」にDBMS_LOCKを実行する権限を与える
- SQL*Plus
- C:\>sqlplus sys/change_on_install@db01 as sysdba SQL*Plus: Release 12.2.0.1.0 Production on 月 10月 1 09:06:55 2018 Copyright (c) 1982, 2017, Oracle. All rights reserved. Connected to: Oracle Database 12g Release 12.2.0.1.0 - 64bit Production SQL> GRANT EXECUTE ON DBMS_LOCK TO taro; 権限付与が成功しました。
権限を付与する時は、SYSまたはSYSTEMユーザでログインする必要があります。
例2)ユーザ「taro」にmuserテーブルを検索/挿入/更新/削除する権限を与える
- SQL*Plus
- SQL> GRANT SELECT, INSERT, UPDATE, DELETE ON muser TO taro; 権限付与が成功しました。
備考
- 権限付与は管理者など、権限付与ができるユーザでログインし直して行ってください