Oracle Tips
- 環境変数
- NLS_LANG
AMERICAN_JAPAN.JA16SJIS がとりあえずおすすめ
エラーメッセージが英語は表記され,
データ中に日本語があっても SJIS で見える
- sqlplus
- 実行計画/結果の参照
set autotrace on
[explain/traceonly];
$ORACLE_HOME/rdbms/admin/utlxplan.sql の実行,
SYSDBA にて $ORACLE_HOME/rdbms/sqlplus/plustrce.sql
および
grant plustrace to ユーザ;
の実行が前提
- 経過時間の表示
set timing on;
- ヒント文
select /*+ index(表名 インデックス名) */ 列名
from 表明;
と SELECT 文中にインデックスを指定して検索ができる(ヒントという)
- 整合性制約の有効化
alter table 表名 enable validate constraint 制約名;
を実行した際に制約違反によるエラーがでた場合,
$ORACLE_HOME/rdbms/admin/utlexcept.sql を実行しておいて
alter table 表名 enable validate constraint 制約名
exceptions into exceptions;
を実行すると表 exceptions に違反データ情報が格納される
- リスナー
$ORACLE_HOME/network/admin/ 以下の
listener.ora,tnsnames.ora,sqlnet.ora が関連
sqlnet.ora の NAMES.DEFAULT_DOMAIN は曲者
(コメントアウトするべし)
- トラブルシューティング
エラーがでた場合,ORA-XXXX とか TNS-XXX のエラーコードで
マニュアルを引く,あるいは検索するとよい.
- データベースの回復方法
データベースを close にする
alter database close;
または
shutdown;
startup mount;
- recover database;
- recover datafile 'ファイル名';
- 初期パラメータ - Oracle 9i 以降 -
spfile{$ORACLE_SID}.ora または spfile.ora
パラメータの変更は
alter system set 名前 = 値 で稼働中に実行化
scope = {both|spfile|memory} が選べる both がデフォルト
ただし shared_pool_size など運用中にできないものは
spfile にのみ書いて再起動(sqlplusの接続も一度切る必要あり)
- 初期パラメータの参照
show parameters
- SQL
- テーブル一覧: select * from user_tables
- テーブル定義: select * from col (sqlplus では desc)