多くの場所で使用されている手順を含むパッケージがあり、一部の場所では、別の列を更新するなど、わずかに異なる手順が必要です。
すべてではなく一部の手順を含む追加のパッケージを作成できると考えました。
スクリプトでステートメントを直接チェックインする方法はありif
ますか? 追加パッケージにプロシージャが存在しない場合、標準パッケージにフォールバックする方法はありますか?
DBA_PROCEDURES ビューからこの情報を取得できるはずです。
SELECT *
FROM SYS.DBA_PROCEDURES
WHERE OBJECT_TYPE = 'PACKAGE' AND
OBJECT_NAME = '<your package name>' AND
PROCEDURE_NAME = '<your procedure name>'
これが行を返す場合、関心のあるプロシージャはパッケージに存在します。NO_DATA_FOUND 例外が発生した場合は、プロシージャがパッケージに存在しないことを意味します。
共有してお楽しみください。
通常のユーザーとしてコードを実行している場合、SYS.DBA_PROCEDURES はまったく表示されません。
ただし、ユーザー アクセス可能なテーブルから同じことができますuser_procedures
。
SELECT *
FROM USER_PROCEDURES
WHERE OBJECT_TYPE='PACKAGE' AND
OBJECT_NAME ='<your package name>' AND
PROCEDURE_NAME = '<your procedure name>';
select * from USER_OBJECT where object_type='PACKAGE' AND OBJECT_NAME ='<YOUR PACKAGE NAME>'