2008年3月18日火曜日

oracleについての備忘録

忘れっぽいんで仕方がないんですシリーズ。


oracle編。


クライアントから操作する際の文字コード設定


oracleでSQL*Plusを使って日本語を使用する際、何も設定していないと文字化けしてしまいます。解消するには、はNLS_LANGの設定をする必要があります。


bashなら



# UTF8
export NLS_LANG=Japanese_Japan.UTF8
# SJIS
export NLS_LANG=Japanese_Japan.JA16SJIS
# EUC
export NLS_LANG=Japanese_Japan.JA16EUC

schなら



# UTF8
setenv NLS_LANG=Japanese_Japan.UTF8
# SJIS
setenv NLS_LANG=Japanese_Japan.JA16SJIS
# EUC
setenv NLS_LANG Japanese_JAPAN.JA16EUC

後はTera Termで接続するなら、漢字コードで受信、送信を任意の文字コードに変更するだけです。SQL*Plusを起動したときに、曜日や月などが文字化けせずに表示されてればO.K.です。




2008年3月8日土曜日

oracleについての備忘録

忘れっぽいんで仕方がないんですシリーズ。


oracle編。


テーブルの情報を取得するSQLなど


テーブルの一覧を取得する


ユーザが所有するテーブル一覧を取得したい場合。



SQL> select table_name from user_tables;

ユーザが閲覧できるテーブル一覧を取得したい場合。



SQL> select * from tab;

シノニムやシーケンスなども含めた、テーブル一覧を取得したい場合。



SQL> select * from cat;

テーブルの詳細を確認する


SQL*Plusだと、一発で楽。



SQL> desc [table_name];

より詳しく調べたい時。



SQL> select
column_name,
data_type,
data_length,
nullable,
data_default
from
user_tab_columns
where
table_name = '[table_name]'
order by
column_id;