質問: いつもお世話になっております。 PL/SQLパッケージにて、DBMS_LOCK.SLEEP()を使用したいのですが、 「DBMS_LOCKは宣言されてません。」とエラーになります。 DBMS_OUTPUTプロシージャに関しては正常に動作しているのですが、DBMS_LOCK.SLEEP()を使用するさいにインストールしなければいけないパッケージなどあるのでしょうか? 初心者で申し訳ありませんが、宜しくお願いします。
回答: こんにちわ。 DBMS_OUTPUT パッケージは、Public に対して実行権限が付与されているため 特に設定を行わなくても全てのユーザが実行可能です。 対してDBMS_LOCK パッケージは、execute_catalog_role に対して実行権限 が付与されているので、権限を付与しないと実行できません。 SYS ユーザで接続して、 Grant execute on sys.dbms_lock to ユーザ名 又は Grant execute_catalog_role to ユーザ名 を実行して見て下さい。