10

多くの場所で使用されている手順を含むパッケージがあり、一部の場所では、別の列を更新するなど、わずかに異なる手順が必要です。

すべてではなく一部の手順を含む追加のパッケージを作成できると考えました。

スクリプトでステートメントを直接チェックインする方法はありifますか? 追加パッケージにプロシージャが存在しない場合、標準パッケージにフォールバックする方法はありますか?

4

5 に答える 5

15

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 例外が発生した場合は、プロシージャがパッケージに存在しないことを意味します。

共有してお楽しみください。

于 2012-07-11T15:53:19.063 に答える
0

通常のユーザーとしてコードを実行している場合、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>';
于 2021-05-26T13:09:07.250 に答える
-1
select * from USER_OBJECT where object_type='PACKAGE' AND OBJECT_NAME ='<YOUR PACKAGE NAME>'
于 2012-07-15T13:20:54.587 に答える