Gblog

おもにTips

DBAビュー定義の確認方法

DBAビューも普通のビューと同じように DBA_VIEWS から確認できる。
例えば、

SET LONG 10000 LONGC 10000 PAGES 1000
SELECT TEXT FROM DBA_VIEWS WHERE VIEW_NAME = 'DBA_SYNONYMS';

結果は、

こんな感じ。

TEXT
--------------------------------------------------------------------------------
select u.name, o.name, s.owner, s.name, s.node
from sys.user$ u, sys.syn$ s, sys."_CURRENT_EDITION_OBJ" o
where o.obj# = s.obj#
  and o.type# = 5
  and o.owner# = u.user#

 

ただ、DBA_VIEW.TEXT 列は LONG型なので、LIKE検索ができない。。。

SQL> SELECT VIEW_NAME FROM DBA_VIEWS WHERE TEXT LIKE '%syn$%';
SELECT VIEW_NAME FROM DBA_VIEWS WHERE TEXT LIKE '%syn$%'
                                      *
行1でエラーが発生しました。:
ORA-00932: データ型が一致しません: CHARが予想されましたがLONGです。

 

依存関係をみる場合は、DBA_DEPENDENCIES を使いましょう。

SELECT OWNER,NAME FROM DBA_DEPENDENCIES WHERE REFERENCED_NAME ='SYN$';