-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 #counter