ORACLEでいろんな定義を取得する
仕事で稼働中のORACLEのViewの定義や、ストアドプロシジャーの定義を取得する機会がありました。
今回は、SQL*Plusを使ってORACLEの定義を取得するコマンドについて紹介します。
こんな方におすすめです。
Viewやストアドの定義の資産を管理していない。
稼働中のシステムから定義を取得したい。
Viewの定義取得コマンド
SET LONG 10000
SET PAGES 1000
SET LINESIZE 2000
SET LONG 1000で、SQL*Plusの BLOB、CLOBなどのカラムの表示の幅を変更します。指定をしない場合は、デフォルトは80のため、途中で表示が切れてしまいます。変更することで、「USER_VIEWS」の内容をすべて表示できます。
SET PAGES 1000でページの行数を変更します。デフォルトは14行です。この指定をしないと、14行ごとにヘッダが表示されます。
SET LINESIZE 2000で、SQL*Plusの 1行に表示する幅を変更します。
1行表記SQL
SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME = '【View名】'
複数行表記SQL
SELECT
TEXT
FROM
USER_VIEWS
WHERE VIEW_NAME = '【View名】'
※上記SQLは同じ文です。見やすさと便利性を考慮して1行表示と、複数行表示にしています。
【View名】を指定してSELECT文を実行することで、Viewの定義が表示されます。
ストアドプロシジャーの定義取得コマンド
1行表記SQL
SELECT TEXT FROM USER_VIEWS WHERE USER_SOURCE = '【ストアドプロシージャ名】'
複数行表記SQL
SELECT
TEXT
FROM USER_SOURCE
WHERE NAME = '【ストアドプロシージャ名】'
※上記SQLは同じ文です。見やすさと便利性を考慮して1行表示と、複数行表示にしています。
SQL*Plusの環境設定Viewの取得で説明した内容と同じです。
【ストアドプロシージャ名】を指定してSELECT文を実行することで、ストアドプロシージャ名の定義が表示されます。
まとめ
本来であれば、データベース関連の資産は「資産管理」として管理されるべきです。
ですが、資産管理ができていないプロジェクトが存在しないことも現実です。
SESの業界の保守をやっていると、管理が不十分な案件に配属されることは多々あります。
そんなときは、稼働しているシステムからソースコードを取得することもあるので、そんなときに役に立てれば幸いです。
0 件のコメント:
コメントを投稿
コメントをお待ちしています。