- オプションの指定方法
オプションには、set文を使用した定常的なオプションと、exec_sqlコマンドを使用した一時的なオプションの2種類があります。定常的なオプションは、それが変更されるまで、実行される全てのSQLに対して有効です。一時的なオプションは、exec_sqlコマンドで指定されたSQLのみ有効になります。
- set文による定常的なオプション
定常的なオプションは次のように指定します。但し大文字小文字の区別はありません。
set EXEC_SQL_OPTION DEFAULT;
set EXEC_SQL_OPTION CGI;
set option_name[=value];
(1) DEFAULT
'set EXEC_SQL_OPTION DEFAULT;'は、全てのオプションをデフォルトに戻します。
(2) CGI
'set EXEC_SQL_OPTION CGI;'は、シェルスクリプトをCGIモードにします。
(3) その他のオプション
その他のオプションでは、「ON(または TRUE)」、「OFF(または FALSE)」もしくは「オプションの値」をセットします。
尚、ON/OFFの省略した場合は ON がセットされたことになります。例えば、set OPTION_ECHO; は set OPTION_ECHO=ON; と同じです。
例)
set OPTION_ECHO; または set OPTION_ECHO=ON; または set OPTION_ECHO=TRUE;
set OPTION_QUIET=OFF; または set OPTION_QUIET=FALSE;
set OPTION_SEPARATOR=',';
set OPTION_NULLSTRING="*N*";
option_name | 内容 | DEFAULT value |
OPTION_ECHO | バックエンドに送信されるクエリを表示 | OFF |
OPTION_QUIET | エラーメッセージを表示しない | OFF (表示する) |
OPTION_HEADER | 表のヘッダー部を表示
例) set option_header=on;
select * from test;
code|name |addr
----+-------+-----
101|tanaka |tokyo
111|yoshida|fukui
(2 rows)
例) set option_header=off;
select * from test;
101|tanaka |tokyo
111|yoshida|fukui
(2 rows)
| ON |
OPTION_BOTTOM | 表の最下段(行数)を表示
例) set option_bottom=off;
select * from test;
code|name |addr
----+-------+-----
101|tanaka |tokyo
111|yoshida|fukui
| ON |
OPTION_ALIGNMENT | 表の列の並びを揃える
CSV形式で出力する場合は OFF にする。
OPTION_SEPARATORを参照。
| ON |
OPTION_FRAME | 表の外側の罫線を表示
例) set option_frame=on;
select * from test;
+------+---------+-------+
| code | name | addr |
+------+---------+-------+
| 101 | tanaka | tokyo |
| 111 | yoshida | fukui |
+------+---------+-------+
(2 rows)
| OFF |
OPTION_EXPANDED | 検索結果の出力を拡張(expanded)表示形式に切り替える
例) set option_expanded=on;
select * from test;
----- RECORD 0 -----
code|101
name|tanaka
addr|tokyo
----- RECORD 1 -----
code|111
name|yoshida
addr|fukui
| OFF |
OPTION_SEPARATOR | 表の区切りの罫線文字を指定
例) set option_expanded=on;
set option_separator=':';
select * from test;
----- RECORD 0 -----
code:101
name:tanaka
addr:tokyo
----- RECORD 1 -----
code:111
name:yoshida
addr:fukui
例) set option_header=off;
set option_bottom=off;
set option_expanded=off;
set option_alignment=off;
set option_separator=',';
select * from test;
[CSV形式の出力]
101,tanaka,tokyo
111,yoshida,fukui
| | |
OPTION_NULLSTRING OPTION_ZEROSTRING | 検索結果の値が NULL もしくは all bit off の文字を指定
例) set option_nullstring='\N';
set option_zerostring='\0';
select * from test;
code|name |addr
----+-------+-----
101|tanaka |tokyo
110|\N |\0
210|sakaida|osaka
例) set option_nullstring='';
set option_zerostring=''
select * from test;
code|name |addr
----+-------+-----
101|tanaka |tokyo
110| |
210|sakaida|osaka
| |
OPTION_CAPTION | 表のタイトル文字列を指定
|
|
OPTION_HTML | HTML出力を行う
set EXEC_SQL_OPTION CGI; を実行すると自動的に HTML出力モード(set OPTION_HTML=ON;)になる
| OFF |
OPTION_TABLETAG | HTMLのTABLEタグのオプションを指定
例) set OPTION_TABLETAG='
<table bgcolor=#eeeeee%>';
|
|
OPTION_HEADERTR | TABLEヘッダーのTRタグを指定(主にヘッダーの1行全列の背景色を変更する場合に使用)
例) set OPTION_HEADERTR='
<TR BGCOLOR=#92CDCD>';
|
|
OPTION_HEADERTH | TABLEヘッダーのTHタグを、各列の数だけカンマ区切りで指定(列ごとの長さ色を変える場合などに使用)
例) set OPTION_HEADERTH='
<TH bgcolor=#0088FF>,
<TH nowrap>,
<TH>';
OPTION_HEADERTHで指定したタグ数が、検索結果の列数に満たないときは、残りの列は、<TH>で満たされる。
|
|
OPTION_BODYTAG | TABLEボディのTDタグを、各列の数だけカンマ区切りで指定(列ごとの長さ色を変える場合に使用)
例) set OPTION_BODYTAG='
<TD bgcolor=#0088FF>,
<TD nowrap>,
<TD>';
OPTION_BODYTAGで指定したタグ数が、検索結果の列数に満たないときは、残りの列は、<TD>で満たされる。
|
|
OPTION_INPUTTAG | 更新可能なフィールド形式に変更して検索結果を表示
(下記の例2を参照)
| OFF | |
OPTION_INPUTSIZE | OPTION_INPUTTAGがONの場合、各列の長さをカンマ区切りで指定
例) set option_inputsize='-1,32,48,0';
長さを0にすると自動決定し、長さを -1 にすると入力不可になる。
OPTION_INPUTSIZEで指定した長さの値の数が、検索結果の列数に満たないときは、残りは全て自動決定になる。
| | |
(例1)
set OPTION_CAPTION='<P align=left><FONT SIZE=5><B>会員名簿</B></FONT></P>';
set OPTION_TABLETAG='<table bgcolor=#D1EEEE border=4 cellspacing=0 cellpadding=2>';
set OPTION_HEADERTR='<tr bgcolor=#96CDCD>';
set OPTION_HEADERTH='<TH bgcolor=#0088FF nowrap>,<TH nowrap>,<TH nowrap>';
set OPTION_BODYTAG='<TD bgcolor=#0088FF nowrap>,<TD nowrap>,<TD nowrap>';
select * from member where userid>0 order by userid;
会員名簿
userid | 氏名 | email | 電話 |
1220 | 青xx木正志 | XXXYYY62@nify.ne.jp | 0777-66-xxxx |
1249 | 安yy孝則 | XXXYYYc@email.com | 090-xxxx-yyyy |
(2 rows)
(例2)
set OPTION_CAPTION='<P align=left><FONT SIZE=5><B>会員名簿</B></FONT></P>';
set OPTION_TABLETAG='<table border=1 bgcolor=#D1EEEE cellspacing=1 cellpadding=2>';
set OPTION_HEADER=OFF;
set OPTION_BOTTOM=OFF;
set OPTION_EXPANDED=ON;
set OPTION_INPUTTAG=ON;
set OPTION_INPUTSIZE='-1, 32, 48, 0';
select * from member where userid=1258;
exec_sqlコマンドによる一時的なオプション
一時的にオプションを指定してSQLを実行するには、exec_sqlコマンドを使用します。
exec_sql オプション "SQL"
オプション | 内容 | set文のオプションとの比較 |
-e | バックエンドに送信されるクエリを表示 | set OPTION_ECHO=ON |
-q | エラーメッセージを表示しない | set OPTION_QUIET=ON |
-T | 表のヘッダー部を表示しない
| set OPTION_HEADER=OFF |
-B | 表の最下段(行数)を表示しない
| set OPTION_BOTTOM=OFF |
-A | 表の罫線を揃えない | set OPTION_ALIGNMENT=OFF |
-L | 表の外側の罫線を表示 | set OPTION_FRAME=ON |
-X | 拡張表示形式に切り替える | set OPTION_EXPANDED=ON |
-S sep | 表の区切りの罫線文字を指定 | set OPTION_SEPARATOR='sep' |
-N null | 検索結果の値がNULLのときの文字を指定 | set OPTION_NULLSTRING='null' |
-Z zero | 検索結果の値が all bit off の文字を指定 | set OPTION_ZEROSTRING='zero' |
-C cap | 表のタイトル文字列を指定 | set OPTION_CAPTION='cap' |
-H | HTML出力を行う | set OPTION_HTML=ON |
(例-3) 検索結果をCSV形式でファイルに書き出す
exec_sql -S ',' -TBA "select * from test where code >= 111"
111,222,333
44,5555,66666
5555,88,9999
|
|