-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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS