Oracleメモ
Oracle作業のメモ…
sqlplusの出力結果をcsv(ライク)にする
SQL> set linesize 1000
SQL> set pagesize 0
SQL> set trimspool on
SQL> set colsep ‘,’
ファンクション・プロシージャなどの一覧確認
SQL> SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE=’FUNCTION’;
テーブルの構造確認
SQL> DESC [テーブル名];
トリガ・ファンクション・パッケージ・プロシージャの内容確認
SQL> SELECT TEXT FROM USER_SOURCE WHERE NAME='[オブジェクト名]’ AND TYPE='[オブジェクト種別]’ ORDER BY LINE;
※WHERE区でTYPEを指定しないと、同じ名称のオブジェクトがある場合(PACKAGEとPACKAGE_BODYなど)コードが混ざって悲惨なことにorz
インデックスの内容確認
SQL> select i.table_name, i.index_name, i.uniqueness, c.column_name
from user_indexes i, user_ind_columns c
where i.index_name = c.index_name and i.table_name = ‘[テーブル名]’
order by index_name,table_name,column_position;
インデックスの内容確認
SQL> SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME='[オブジェクト名]’;
プロシージャ等がINVALIDの場合
DBをインポートした場合など、インポートする順序と依存関係により、ファンクション・プロシージャがINVALIDになる場合がある。
再コンパイルによって有効になる場合もある。DBに格納されたソースを単独でコンパイルする場合以下の構文。
SQL> ALTER hoge [オブジェクト名] COMPILE;
hoge → FUNCTION, PROCEDURE, VIEW, PACKAGE…