[Prev] [Menu] [Next]

SQLの実行オプション


  • オプションの指定方法

    オプションには、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_HTMLHTML出力を行う

    set EXEC_SQL_OPTION CGI; を実行すると自動的に HTML出力モード(set OPTION_HTML=ON;)になる
    OFF
    OPTION_TABLETAGHTMLのTABLEタグのオプションを指定
    例) set OPTION_TABLETAG='
        <table bgcolor=#eeeeee%>';
    

    OPTION_HEADERTRTABLEヘッダーのTRタグを指定(主にヘッダーの1行全列の背景色を変更する場合に使用)
    例) set OPTION_HEADERTR='
        <TR BGCOLOR=#92CDCD>';
    

    OPTION_HEADERTHTABLEヘッダーのTHタグを、各列の数だけカンマ区切りで指定(列ごとの長さ色を変える場合などに使用)
    例) set OPTION_HEADERTH='
        <TH bgcolor=#0088FF>,
        <TH nowrap>,
        <TH>';
    
    OPTION_HEADERTHで指定したタグ数が、検索結果の列数に満たないときは、残りの列は、<TH>で満たされる。

    OPTION_BODYTAGTABLEボディのTDタグを、各列の数だけカンマ区切りで指定(列ごとの長さ色を変える場合に使用)
    例) set OPTION_BODYTAG='
        <TD bgcolor=#0088FF>,
        <TD nowrap>,
        <TD>';
    
    OPTION_BODYTAGで指定したタグ数が、検索結果の列数に満たないときは、残りの列は、<TD>で満たされる。

    OPTION_INPUTTAG更新可能なフィールド形式に変更して検索結果を表示
    (下記の例2を参照)
    OFF
    OPTION_INPUTSIZEOPTION_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.jp0777-66-xxxx
    1249安yy孝則XXXYYYc@email.com090-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;

    会員名簿

    userid1258
    氏名
    email
    電話



  • 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'
      -HHTML出力を行う 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

    [Prev] [Menu] [Next]