az @Wiki
SQL*Plus
最終更新:
az
-
view
SQL*Plusコマンド
- ファイルに記述されたSQLを実行する
SQL> @test.sql SQL> start test.sql
- SQLバッファ内をホストOSのエディタで編集する
SQL> ed[it]
- SQLバッファ内のカレント行の終わりに文字列を追加する
SQL> a[ppend]
- SQLバッファ内のSQLコマンドを実行する
SQL> /
- 現在のSQLバッファを表示する
SQL> l[ist]
- 現在のSQLバッファ内をホストOSのファイルとして保存する
SQL> sav[e] ファイル名
- 現在のSQL*Plus環境をホストOSのファイルとして保存する
SQL> store set ファイル名
- 問い合わせ結果をファイルに出力する
SQL> show spool spool OFF SQL> spool on SQL> spool c:\test.txt SQL> spool off
- SQL*Plus でテーブル名を指定してcsv出力(OTN Japan > Code Tips# 764)
$ sqlplus scott/tiger SQL> @mk_csv.sql SQL> Enter value for max_line_size:32767 SQL> DATETIME FORMAT:YYYY-MM-DD HH24:MI:SS SQL> TABLE NAME:user_tables SQL> OUTPUT FILE NAME:user_tables.csv
----- mk_csv.sql ここから set pagesize 0 set linesize 32767 set linesize &MAX_LINE_SIZE set trimspool on set feedback off set verify off ACCEPT DT_FMT CHAR PROMPT 'DATETIME FORMAT:' ALTER SESSION SET NLS_DATE_FORMAT = '&DT_FMT'; ACCEPT TABLE CHAR PROMPT 'TABLE NAME:' ACCEPT FILE CHAR PROMPT 'OUTPUT FILE NAME:' set termout off spool tmp_csv.sql SELECT 'SELECT ' FROM DUAL; SELECT CHR(9) || DECODE( DATA_TYPE, 'VARCHAR2', '''"'' || REPLACE( ' , 'CHAR' , '''"'' || REPLACE( ' , NULL ) || COLUMN_NAME || DECODE( DATA_TYPE, 'VARCHAR2', ', ''"'', ''""'' ) || ''",'' ||' , 'CHAR' , ', ''"'', ''""'' ) || ''",'' ||' , ' || '','' ||' ) FROM USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER( '&TABLE' ) AND COLUMN_ID != ( SELECT MAX( COLUMN_ID ) FROM USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER( '&TABLE' ) ) ORDER BY COLUMN_ID; SELECT CHR(9) || DECODE( DATA_TYPE, 'VARCHAR2', '''"'' || REPLACE( ' , 'CHAR' , '''"'' || REPLACE( ' , NULL ) || COLUMN_NAME || DECODE( DATA_TYPE, 'VARCHAR2', ', ''"'', ''""'' ) || ''"''' , 'CHAR' , ', ''"'', ''""'' ) || ''"''' , NULL ) FROM USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER( '&TABLE' ) AND COLUMN_ID = ( SELECT MAX( COLUMN_ID ) FROM USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER( '&TABLE' ) ); SELECT ' FROM &TABLE;' FROM DUAL; spool off spool &FILE @tmp_csv spool off set termout on ----- mk_csv.sql ここまで