- 追加された行はこの色です。
- 削除された行はこの色です。
-Oracleを利用して行く上で必要となった知識
#contents
*Tips [#gcd0b78a]
**データベースの文字コード確認 [#c78cb0f6]
SELECT NLS_CHARSET_NAME(NLS_CHARSET_ID('CHAR_CS')),
NLS_CHARSET_NAME(NLS_CHARSET_ID('NCHAR_CS')) FROM DUAL;
**オブジェクトの種類確認 [#k5e8bfca]
SQL> select object_name,owner,object_type from all_objects where object_name='EMP';
*テーブル [#qdc1d055]
**テーブル一覧 [#j2067c0e]
select table_name from user_tables;
**列定義変更 [#x234fcb9]
alter table テーブル名 MODIFY ( 列名 VARCHAR2(100));
-実行後はdescribeで確認
desc テーブル名
*シーケンス [#z2f0d692]
**シーケンス作成 [#hb42f388]
-オプションも何も指定しないで作成
create sequence シーケンス名
-初期値0で1ずつ増えて、最大値が1万のシーケンス作成
create sequence シーケンス名
increment by 1
start with 0
maxvalue 10000
**シーケンス一覧取得 [#p0ca2925]
select sequence_name from user_sequences;
**現在の値を確認 [#ia730f42]
-次に降りだされる値(キャッシュを考慮しないので下より大きめの数値が出る)
select sequence_name, last_number from user_sequences;
-トランザクション中で利用(こっちが正確のようだ)
SELECT シーケンス名.CURRVAL FROM DUAL
**次の値を確認 [#vb6e385c]
SELECT シーケンス名.NEXTVAL FROM DUAL
これを実行するとシーケンスが+されるので注意!ロールバックも効かない
*インデックス [#a0432637]
**あるテーブルに存在するインデックスの確認。例: [#ad405b69]
select index_name ,table_name ,column_name from user_ind_columns where table_name = 'EMP';
*プロシージャ実行 [#tbfbdbb8]
**sqlplusからプロシージャ実行 [#pa9b9bc0]
execute プロシージャ名
**プロシージャ定義内容確認 [#x21a1258]
select text from user_source where NAME = 'プロシージャ名' order by line
**プロシージャのDBMS_OUTPUTをSQLplus出力する。 [#rdb69d5d]
set serveroutput onを実施する必要がある。
SQL> set serveroutput on
SQL> begin
2 dbms_output.put_line('test message');
3 end;
4 /
test message
#counter