Oracle

Oracleで勝手につくられたシノニムで名前に$と/と_が入っていないやつを抜き出すSQL

先日Oracle12cを触った際に、Oracle11gR2では使えていたスキーマ名で実装すると不可解なエラーが出るという事象が発生しました

よくよく調べてみるとOracle12cから勝手に作られたPUBLIC SYNONYMと名前が競合していることが原因でした

その際にチェックするために作ったSQLです

※↓のエリア内文字切れてるのでカーソルあてて出てくるエリアの右端の斜め右上線をクリックすると全体化されます

--Oracleで勝手につくられたシノニムで名前に$と/と_が入っていないやつを抜き出す
SELECT * FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'SYNONYM'
AND OBJECT_NAME NOT LIKE '%$%'
AND OBJECT_NAME NOT LIKE '%/%'
AND OBJECT_NAME NOT LIKE '%\_%' ESCAPE '\'
AND ORACLE_MAINTAINED = 'Y'
--文字数で絞る場合
--AND length(OBJECT_NAME) = 
--決め打ちする場合
--AND OBJECT_NAME = '決め打ち'
ORDER BY OBJECT_NAME

スポンサーリンク

-Oracle
-, ,

© 2024 ぱそやんうぇぶ