ヘッダーをスキップ

Oracle Rdb SQLリファレンス・マニュアル リリース7.2 E06178-01 |
| 目次 | 索引

戻る | 次へ |

    SQL> UPDATE tab1 SET col1 = NULL WHERE CHARACTER_LENGTH(col1) = 0;

表の変更が不可能であるか、VARCHARファンクションが含まれる別の言語でコンパイルされたビューを使用する必要がある場合、この表またはビューを参照するORACLE言語で新規ビューを作成し、長さがゼロのVARCHAR文字列を使用しないようにします。次の例は、表またはOracle以外の言語ビューのVARCHAR列から長さがゼロの文字列を選択しないようにする方法を示しています。

    SQL> SET DIALECT 'ORACLE LEVEL1';
    SQL> CREATE VIEW view1 (col1, col2)
    cont>    AS SELECT SUBSTRING(col1 FROM 1 FOR 2000), col2 FROM tab1;

ファンクションを使用せずにデータが選択される場合、Oracle Rdbオプティマイザの方が効率的です。このため、前述の例の使用が最も適しているのは、長さがゼロの文字列が表に挿入されている疑いがあり、これらを使用しないようにする必要がある場合のみです。

- ROWNUMキーワードは、選択式で使用でき、問合せで返される行数を制限します。次の例では、SELECT文によって返される行数を9行に制限しています。

      SQL> ATTACH 'FILENAME mf_personnel';
      SQL> SET DIALECT 'ORACLE LEVEL1';
      SQL> SELECT last_name FROM EMPLOYEES WHERE ROWNUM < 10;
       LAST_NAME
       Toliver
       Smith
       Dietrich
       Kilpatrick
       Nash
       Gray
       Wood
       D'Amico
       Peters
      9 rows selected

  正の整数以上のROWNUM値の条件テストは常にFALSEであるため、行は返されません。次に例を示します。

      SQL> SELECT last_name FROM EMPLOYEES WHERE ROWNUM > 10;
      0 rows selected
      SQL> SELECT last_name FROM EMPLOYEES WHERE ROWNUM = 10;
      0 rows selected

  ROWNUMキーワードに適用される追加制限は、「使用方法」を参照してください。

  ### ORACLE LEVEL2

  これには、ORACLE LEVEL1に関するすべての動作説明に次の変更が加えられたものが含まれます。

  - 予約語チェックおよびDATE ANSI形式を除き、SQL99と同じ言語ルールが有効です。

  - 連結（||）およびCONCATファンクションは、キャラクタ・タイプ（CHARおよびVARCHAR）のみでなくすべてのデータ型に対応しています。数値または日/時値は、連結の前にVARCHARに変換されます。

  - 日付を減算すると、浮動小数点が生じます。部分的日数は小数部として表されるようになりました。

  - これは完全なリストではありません。ORACLE LEVEL2言語のセマンティクス変更の詳細は、『Oracle Rdbリリース・ノート』を参照してください。

  ### 'string-literal'
  parameter parameter-marker

  次のいずれかにする必要があるruntime-optionsの値を指定します。

  - SQL99

  - SQL92

  - SQL89

  - MIA

  - SQLV40

  - ORACLE LEVEL1

  - ORACLE LEVEL2

  ### SQL89

  ### MIA

  次の動作を指定します。

  - 文字列パラメータ、列およびドメインの長さは、オクテットではなく文字として解釈されます。

  - 二重引用符は、デリミタ付き識別子として解釈されます。

  - キーワードは、二重引用符で囲まれていないかぎり、識別子としては使用できません。

  - 更新可能ビューに関するANSI/ISO SQL規格は、コンパイル時に作成されたすべてのビューに適用されます。更新可能ビューに関するANSI/ISO SQL規格に準拠しないビューは、更新できません。
    更新可能ビューに関するANSI/ISO SQL規格では、SELECT文で次の条件が満たされる必要があります。

    - DISTINCTキーワードは指定されません。

    - 選択リストに指定できるのは列名のみです。各列名は1回のみ指定できます。max(column_name)またはcolumn_name +1などのファンクションおよび式は選択リストに指定できません。

    - FROM句が参照できるのは1つの表のみです。この表は、更新可能な実表、グローバル一時表、ローカル一時表または派生表のいずれかである必要があります。

    - WHERE句には副問合せが含まれません。

    - GROUP BY句は指定されません。

    - HAVING句は指定されません。

  MIAを指定する場合、キャラクタ・セットは次のように設定されます。

  - デフォルト・キャラクタ・セット: KATAKANA

  - 各国語キャラクタ・セット: KANJI

  - 識別子キャラクタ・セット: DEC_KANJI

  - リテラル・キャラクタ・セット: KATAKANA

  - 制約の評価時間は、DEFERRABLE INITIALLY DEFERREDです。

  ### SQL92

  次の動作を指定します。

  - 文字列パラメータ、列およびドメインの長さは、オクテットではなく文字として解釈されます。

  - 二重引用符は、デリミタ付き識別子として解釈されます。

  - キーワードは、二重引用符で囲まれていないかぎり、識別子としては使用できません。

  - 更新可能ビューに関するANSI/ISO SQL規格は、コンパイル時に作成されたすべてのビューに適用されます。更新可能ビューに関するANSI/ISO SQL規格に準拠しないビューは、更新できません。
    更新可能ビューに関するANSI/ISO SQL規格では、SELECT文で次の条件が満たされる必要があります。

    - DISTINCTキーワードは指定されません。

    - 選択リストに指定できるのは列名のみです。各列名は1回のみ指定できます。max(column_name)またはcolumn_name +1などのファンクションおよび式は選択リストに指定できません。

    - FROM句が参照できるのは1つの表のみです。この表は、更新可能な実表、グローバル一時表、ローカル一時表または派生表のいずれかである必要があります。

    - WHERE句には副問合せが含まれません。

    - GROUP BY句は指定されません。

    - HAVING句は指定されません。

  - DATEデータ型およびCURRENT_TIMESTAMPデータ型は、SQL形式として解釈されます。SQL（ANSI）形式のDATEには、YEAR TO DAYフィールドのみが含まれます。

  - データの格納時またはデータの取得時に文字のデータ型が変換される場合、特定の状況下では例外または警告が発生します。これらの状況の詳細は、第2.3.8.2項を参照してください。

  - SQLモジュール内の仮パラメータにはDECIMALまたはNUMERICを指定できます。また、ホスト言語パラメータをパック10進数または符号付き数値の記憶域形式で宣言できます。指定された精度を超える処理を実行しようとすると、エラー・メッセージが生成されます。

  - USERキーワードにより、リクエストに対して現在アクティブなユーザー名を指定します。

  - SETファンクションからNULL値が削除されると、警告が生成されます。

  - ビューに対してWITH CHECK OPTION句を使用すると、整合性制約障害のために個別エラー・コードが返されます。

  - C文字列がNULLで終了していない場合、例外が生成されます。

  - 制約の評価時間のデフォルトは、NOT DEFERRABLE INITIALLY IMMEDIATEに設定されます。

  ### SQL99

  SQL言語がSQL:1999 SQLデータベース言語規格に準拠するように指定します。

  これには、SQL92に関するすべての動作説明に次の変更が加えられたものが含まれます。

  - FOREIGN KEY制約では、REFERENCESリストの列名を任意の順序でリストできます。他の言語では、列名は被参照PRIMARY KEY制約または被参照UNIQUE制約と同じ順序である必要があります。

  - これは完全なリストではありません。SQL99言語のセマンティクス変更の詳細は、『Oracle Rdbリリース・ノート』を参照してください。

  ### SQLV40

  次の動作を指定します。

  - 文字列パラメータ、列およびドメインの長さは、文字ではなくオクテットとして解釈されます。

  - 二重引用符は、文字列リテラルとして解釈されます。

  - キーワードは、識別子として使用できます。

  - 更新可能ビューに関するANSI/ISO SQL規格は、適用されません。かわりに、次の条件を満たすビューは更新可能とみなされます。

    - DISTINCTキーワードは指定されません。

    - FROM句が参照できるのは1つの表のみです。この表は、更新可能な実表、グローバル一時表、ローカル一時表または派生表のいずれかである必要があります。

    - WHERE句には副問合せが含まれません。

    - GROUP BY句は指定されません。

    - HAVING句は指定されません。

  - DATEデータ型およびCURRENT_TIMESTAMPデータ型は、VMS形式として解釈されます。VMS形式のDATEおよびCURRENT_TIMESTAMPには、YEAR TO SECONDフィールドが含まれます。

  - 制約の評価時間は、DEFERRABLE INITIALLY DEFERREDです。

  デフォルトはSQLV40です。

  言語オプションの設定値は、表6-15を参照してください。

  ## 使用方法

  > - SET DIALECT文の後に次の文が処理されると、SET DIALECT文の設定がオーバーライドされます。

  >   - SET CHARACTER LENGTH

  >   - SET QUOTING RULES

  >   - SET KEYWORD RULES

  >   - SET VIEW UPDATE RULES

  >   - SET DEFAULT DATE FORMAT

  >   - SET DEFAULT CHARACTER SET

  >   - SET NATIONAL CHARACTER SET

  >   - SET IDENTIFIER CHARACTER SET

  >   - SET LITERAL CHARACTER SET

  >   - SET NAMES

  >   これらの文によって変更されるのは、現在の接続の設定のみです。

  > - MIAを指定してから言語を別の値に変更しても、MIAでは、デフォルト・キャラクタ・セット、各国語キャラクタ・セット、識別子キャラクタ・セットおよびリテラル・キャラクタ・セットは変更されずにそのまま残ります。この場合、これらの各キャラクタ・セットは手動で変更する必要があります。セッションのキャラクタ・セットの変更の詳細は、「SET DEFAULT CHARACTER SET文」、「SET IDENTIFIER CHARACTER SET文」、「SET LITERAL CHARACTER SET文」および「SET NATIONAL CHARACTER SET文」を参照してください。

  > - SHOW CONNECTIONS文を使用して、接続の特性を表示します。

  > - 文字データ型の変換時にソース文字列がターゲット文字列より長い場合、MIA、SQL89およびSQLV40の各言語では、結果は左詰めされて右側が切り捨てられ、エラーはレポートされません。
  >   他のすべての言語では、データ格納時にエラーが返されます。ただし、切り捨てられる文字が空白文字のみである場合、エラーは返されません。データの取得中に切捨てが発生すると、警告が返されます。この場合、切り捨てられた文字列が空白かどうかにかかわらず、警告が返されます。

  > - 言語をSQL89に設定する場合、SQLインタフェースを使用してデータベースのデータを挿入または更新するときに（RDOインタフェースを使用して定義された）欠落値の変換を処理できます。値がRDOを使用して欠落値に設定されている場合、SQLを使用した挿入または更新の結果値はNULLです。

  > - ROWNUMを列名として使用した場合、列名の変更を考慮してください。考慮しない場合、列の参照時に、列名を一重引用符で囲むか、列名の前に表名を付ける必要があります。

  > - ROWNUMキーワードに適用される他の制限は、次のとおりです。

  >   - ORACLE言語でのみ使用できます。他のすべての言語では、LIMIT TO句を使用する必要があります。

  >   - 選択式条件の比較でのみ使用できます。

  >   - SELECT文または選択式でのみ使用できます。

  >   - LIMIT TO句では使用できません。

  >   - WHERE句の条件では複数回使用できません。

  >   - 列とは比較できません。

  >   - 複合文では使用できません。

  >   - ORブール演算子のいずれの側でも使用できません。

  >   - ファンクション・コールでは選択または使用できません。

  ## 例

  > 例1: SQL92への特性の設定

  >     SQL> ATTACH 'ALIAS MIA1 FILENAME MIA_CHAR_SET DISPLAY CHARACTER SET SHIFT_JIS';
  >     SQL> CONNECT TO 'ALIAS MIA1 FILENAME MIA_CHAR_SET' AS 'TEST';
  >     SQL> SHOW CONNECTIONS TEST;
  >     Connection: TEST
  >     Default alias is RDB$DBHANDLE
  >     Default catalog name is RDB$CATALOG
  >     Default schema name is SMITH
  >     Dialect: SQLV40
  >     Default character unit: OCTETS
  >     Keyword Rules: SQLV40
  >     View Rules: SQLV40
  >     Default DATE type: DATE VMS
  >     Quoting Rules: SQLV40
  >     Optimization Level: DEFAULT
  >     Hold Cursors default: WITH HOLD PRESERVE NONE
  >     Quiet commit mode: OFF
  >     Compound transactions mode: EXTERNAL
  >     Default character set is DEC_MCS
  >     National character set is DEC_MCS
  >     Identifier character set is SHIFT_JIS
  >     Literal character set is SHIFT_JIS
  >     Display character set is SHIFT_JIS

  >     Alias MIA1:
  >             Identifier character set is DEC_KANJI
  >             Default character set is KATAKANA
  >             National character set is KANJI
  >     SQL> --
  >     SQL> -- Change the environment from SQLV40 to MIA.  Notice that the session
  >     SQL> -- character sets change.
  >     SQL> --
  >     SQL> SET DIALECT 'MIA';
  >     SQL> SHOW CONNECTIONS TEST;
  >     Connection: TEST
  >     Default alias is RDB$DBHANDLE
  >     Default catalog name is RDB$CATALOG
  >     Default schema name is SMITH
  >     Dialect: MIA
  >     Default character unit: CHARACTERS
  >     Keyword Rules: MIA
  >     View Rules: ANSI/ISO
  >     Default DATE type: DATE ANSI
  >     Quoting Rules: ANSI/ISO
  >     Optimization Level: DEFAULT
  >     Hold Cursors default: WITH HOLD PRESERVE NONE
  >     Quiet commit mode: OFF
  >     Compound transactions mode: EXTERNAL
  >     Default character set is KATAKANA
  >     National character set is KANJI
  >     Identifier character set is DEC_KANJI
  >     Literal character set is KATAKANA
  >     Display character set is SHIFT_JIS

  >     Alias MIA1:
  >             Identifier character set is DEC_KANJI
  >             Default character set is KATAKANA
  >             National character set is KANJI
  >     SQL> --
  >     SQL> -- Change the environment from MIA to SQL99.  Notice that the
  >     SQL> -- session characters DO NOT change from the MIA settings.
  >     SQL> --
  >     SQL> SET DIALECT 'SQL99';
  >     SQL> SHOW CONNECTIONS TEST;
  >     Connection: TEST
  >     Default alias is RDB$DBHANDLE
  >     Default catalog name is RDB$CATALOG
  >     Default schema name is SMITH
  >     Dialect: SQL99
  >     Default character unit: CHARACTERS
  >     Keyword Rules: SQL99
  >     View Rules: ANSI/ISO
  >     Default DATE type: DATE ANSI
  >     Quoting Rules: ANSI/ISO
  >     Optimization Level: DEFAULT
  >     Hold Cursors default: WITH HOLD PRESERVE NONE
  >     Quiet commit mode: ON
  >     Compound transactions mode: EXTERNAL
  >     Default character set is KATAKANA
  >     National character set is KANJI
  >     Identifier character set is DEC_KANJI
  >     Literal character set is KATAKANA
  >     Display character set is SHIFT_JIS

  >     Alias MIA1:
  >             Identifier character set is DEC_KANJI
  >             Default character set is KATAKANA
  >             National character set is KANJI

  > 例2: 対話型SQLにおける言語の保存および格納

  > この例は、対話型SQLで宣言した変数を使用して、代替言語が必要なスクリプトの実行時に言語を（GET ENVIRONMENTを使用して）保存および格納する方法を示しています。この例では、SHOW CONNECTION文を使用して言語をそのまま表示しています。

  >     SQL> set dialect 'sql99';
  >     SQL> -- save current dialect
  >     SQL> declare :dialect char(40);
  >     SQL> get environment (session) :dialect = DIALECT;
  >     SQL> print :dialect;
  >      DIALECT
  >      SQL99
  >     SQL> set dialect 'oracle level2';
  >     SQL> show connection rdb$default_connection;
  >     Connection: RDB$DEFAULT_CONNECTION
  >     Default alias is RDB$DBHANDLE
  >     Default catalog name is RDB$CATALOG
  >     Default schema name is SMITH
  >     Dialect: SQL99 (ORACLE LEVEL2)
  >     Default character unit: CHARACTERS
  >     Keyword Rules: SQL99
  >     View Rules: ANSI/ISO
  >     Default DATE type: DATE VMS
  >     Quoting Rules: ANSI/ISO
  >     Optimization Level: DEFAULT
  >     Hold Cursors default: WITH HOLD PRESERVE NONE
  >     Quiet commit mode: ON
  >     Compound transactions mode: EXTERNAL
  >     Default character set is DEC_MCS
  >     National character set is DEC_MCS
  >     Identifier character set is DEC_MCS
  >     Literal character set is DEC_MCS
  >     Display character set is UNSPECIFIED
  >     SQL>
  >     SQL> -- restore previous dialect
  >     SQL> set dialect :dialect;
  >     SQL> show connection rdb$default_connection;
  >     Connection: RDB$DEFAULT_CONNECTION
  >     Default alias is RDB$DBHANDLE
  >     Default catalog name is RDB$CATALOG
  >     Default schema name is SMITH
  >     Dialect: SQL99
  >     Default character unit: CHARACTERS
  >     Keyword Rules: SQL99
  >     View Rules: ANSI/ISO
  >     Default DATE type: DATE ANSI
  >     Quoting Rules: ANSI/ISO
  >     Optimization Level: DEFAULT
  >     Hold Cursors default: WITH HOLD PRESERVE NONE
  >     Quiet commit mode: ON
  >     Compound transactions mode: EXTERNAL
  >     Default character set is DEC_MCS
  >     National character set is DEC_MCS
  >     Identifier character set is DEC_MCS
  >     Literal character set is DEC_MCS
  >     Display character set is UNSPECIFIED
  >     SQL>

  # SET DISPLAY文

  > ヘッダー情報の出力を制御します。SHOW DISPLAY文を使用して現在の設定を表示します。

  ## 環境

  > SET DISPLAY文は、対話型SQLでのみ使用できます。

  ## 形式

  ## 引数

  > ### COMMENT

  > ### NOCOMMENT

  > 他のSHOWコマンド（SHOW TABLEなど）によるコメント・テキストの表示を無効または有効にします。

  > ### DEFAULT NULL STRING

  > 'NULL'テキストの使用に戻します。

  > ### EDIT STRING

  > ### NO EDIT STRING

  > 列の編集文字列の使用を有効にして、SELECT文の値を書式設定します。列の編集文字列の使用を無効にするには、NO EDIT STRINGを使用します。

  > ### NULL STRING

  > 対話型SQLによるNULL値の表示方法を変更します。

  > ### QUERY HEADER

  > ### NO QUERY HEADER

  > SELECT文、CALL文、FETCH文およびPRINT文によって生成される出力されたヘッダーを有効にします。このヘッダーを無効にするには、NO QUERY HEADERを使用します。

  > ### ROW COUNTER

  > ### NO ROW COUNTER

  > SELECT文、DELETE文、INSERT文およびUPDATE文によってレポートされる総カウントを有効にします。後続のカウント・メッセージを無効にするには、NO ROW COUNTERを使用します。

  ## 使用方法

  > - 表示列の幅は、最大の列名の長さ、QUERY HEADERの長さ、NULL文字列の長さおよび書式設定されたデータのサイズを使用して計算されます。

  > - SET DISPLAY DEFAULT NULL STRING文は、SET DISPLAY NULL STRING 'NULL'に相当します。

  > - SET DISPLAY NULL STRINGでは、文字列リテラル、または宣言されたローカル変数が受け入れられます。

  > - GET ENVIRONMENT文には、現在定義されているテキストを保存するために使用可能なNULL_STRINGキーワードが含まれます。

  > - デフォルトでは、編集文字列が使用され、問合せヘッダーが表示され、行のカウント・メッセージがレポートされます。複数のオプションをカンマで区切って指定できます。ただし、次の例に示すように、1つの文にオプションとその否定形式の両方は指定できません。

  >       SQL> SET DISPLAY QUERY HEADER, NO QUERY HEADER
  >       %SQL-F-MULTSPECATR, Multiple specified attribute.
  >       "QUERY HEADER" was specified more than once

  > - SQL*Plusとの互換性を確保するために用意されている次のSET文は、SET DISPLAY句に相当します。

  >   - SET HEADING ONは、SQL SET DISPLAY QUERY HEADER文のシノニムです。SELECT、PRINTおよびFETCHなどのSQL出力文では、列、変数またはその問合せヘッダーの名前が表示されます。

  >   - SET HEADING OFFは、SQL SET NO DISPLAY QUERY HEADER文のシノニムです。SELECT、PRINTおよびFETCHなどのSQL出力文では、問合せヘッダーの名前は表示されません。

  >   - SET FEEDBACK ONは、SQL SET DISPLAY NO ROW COUNTER文のシノニムです。SELECT、DELETE、UPDATEおよびINSERTなどのSQLデータ操作文では、関連する行数が表示されます。

  >   - SET FEEDBACK OFFは、SQL SET DISPLAY ROW COUNTER文のシノニムです。SQLデータ操作文では、関連する行数は表示されません。

  >   - SET NULLは、SET DISPLAY NULL STRING ' '文のシノニムです。また、SET NULL 'literal'は、SET DISPLAY NULL 'literal'に相当します。

  ## 例

  > 例1: SET DISPLAY文の使用

  > 次の例は、SET DISPLAY文の効果を示しています。この例では、SHOW DISPLAYコマンドを使用して現在の設定をレポートしています。

  >     SQL> ATTACH 'FILENAME mf_personnel';
  >     SQL>
  >     SQL> CREATE DOMAIN money INTEGER(2) EDIT STRING '$$$,$$9.99';
  >     SQL> CREATE TABLE temp_emp (id INTEGER, sal money);
  >     SQL>
  >     SQL> SELECT * FROM work_status;
  >      STATUS_CODE   STATUS_NAME   STATUS_TYPE
  >      0             INACTIVE      RECORD EXPIRED
  >      1             ACTIVE        FULL TIME
  >      2             ACTIVE        PART TIME
  >     3 rows selected
  >     SQL>
  >     SQL> SET DISPLAY NO ROW COUNTER;
  >     SQL> SHOW DISPLAY
  >     Output of the query header is enabled
  >     Output of the row counter is disabled
  >     Output using edit strings is enabled
  >     Page length is set to 24 lines
  >     Line length is set to 132 bytes
  >     Display NULL values using "NULL"
  >     SQL> SELECT * FROM work_status;
  >      STATUS_CODE   STATUS_NAME   STATUS_TYPE
  >      0             INACTIVE      RECORD EXPIRED
  >      1             ACTIVE        FULL TIME
  >      2             ACTIVE        PART TIME
  >     SQL> INSERT INTO temp_emp (id) VALUES (0);
  >     SQL> INSERT INTO temp_emp (id, sal)
  >     cont> SELECT employee_id, MAX(salary_amount)
  >     cont>   FROM salary_history GROUP BY employee_id;
  >     SQL> UPDATE temp_emp SET id = NULL WHERE id <= 0;
  >     SQL> DELETE FROM temp_emp WHERE id IS NULL;
  >     SQL>
  >     SQL> SET DISPLAY ROW COUNTER;
  >     SQL> SHOW DISPLAY
  >     Output of the query header is enabled
  >     Output of the row counter is enabled
  >     Output using edit strings is enabled
  >     Page length is set to 24 lines
  >     Line length is set to 132 bytes
  >     Display NULL values using "NULL"
  >     SQL>
  >     SQL> SELECT * FROM work_status;
  >      STATUS_CODE   STATUS_NAME   STATUS_TYPE
  >      0             INACTIVE      RECORD EXPIRED
  >      1             ACTIVE        FULL TIME
  >      2             ACTIVE        PART TIME
  >     3 rows selected
  >     SQL>
  >     SQL> SET DISPLAY NO QUERY HEADER;
  >     SQL> SHOW DISPLAY
  >     Output of the query header is disabled
  >     Output of the row counter is enabled
  >     Output using edit strings is enabled
  >     Page length is set to 24 lines
  >     Line length is set to 132 bytes
  >     Display NULL values using "NULL"
  >     SQL>
  >     SQL> DECLARE :res INTEGER;
  >     SQL>
  >     SQL> -- This omits the query header for the SELECT statement
  >     SQL> SELECT * FROM work_status;
  >      0             INACTIVE      RECORD EXPIRED
  >      1             ACTIVE        FULL TIME
  >      2             ACTIVE        PART TIME
  >     3 rows selected
  >     SQL>
  >     SQL> -- This omits the query header for the PRINT statement
  >     SQL> PRINT :res;
  >                0
  >     SQL> PRINT 'This is a print line';
  >      This is a print line
  >     SQL>
  >     SQL> CREATE MODULE call_sample
  >     cont>     LANGUAGE SQL
  >     cont>     PROCEDURE add_one (IN :a INTEGER, OUT :b INTEGER);
  >     cont>     SET :b = :a + 1;
  >     cont> END MODULE;
  >     SQL> -- This omits the query header for the OUT/INOUT parameters for CALL
  >     SQL> CALL add_one (100, :res);
  >              101
  >     SQL>
  >     SQL> DECLARE c CURSOR FOR SELECT * FROM work_status;
  >     SQL> OPEN c;
  >     SQL> -- This omits the query headers for the variables fetched
  >     SQL> FETCH c;
  >      0             INACTIVE      RECORD EXPIRED
  >     SQL> SET DISPLAY QUERY HEADER;
  >     SQL> SHOW DISPLAY
  >     Output of the query header is enabled
  >     Output of the row counter is enabled
  >     Output using edit strings is enabled
  >     Page length is set to 24 lines
  >     Line length is set to 132 bytes
  >     Display NULL values using "NULL"
  >     SQL> -- This outputs the query headers for the variables fetched
  >     SQL> FETCH c;
  >      STATUS_CODE   STATUS_NAME   STATUS_TYPE
  >      1             ACTIVE        FULL TIME
  >     SQL> CLOSE c;
  >     SQL>
  >     SQL> TRUNCATE TABLE temp_emp;
  >     SQL> INSERT INTO temp_emp (id, sal)
  >     cont>     SELECT employee_id, AVG(salary_amount)
  >     cont> FROM salary_history
  >     cont> WHERE salary_end IS NULL
  >     cont> GROUP BY employee_id;
  >     100 rows inserted
  >     SQL>
  >     SQL> SELECT * FROM temp_emp ORDER BY id LIMIT TO 3 ROWS;
  >               ID          SAL
  >              164   $51,712.00
  >              165   $11,676.00
  >              166   $18,497.00
  >     3 rows selected
  >     SQL>
  >     SQL> SET DISPLAY NO EDIT STRING;
  >     SQL> SHOW DISPLAY
  >     Output of the query header is enabled
  >     Output of the row counter is enabled
  >     Output using edit strings is disabled
  >     Page length is set to 24 lines
  >     Line length is set to 132 bytes
  >     Display NULL values using "NULL"
  >     SQL>
  >     SQL> SELECT * FROM temp_emp ORDER BY id LIMIT TO 3 ROWS;
  >              164     51712.00
  >              165     11676.00
  >              166     18497.00
  >     3 rows selected
  >     SQL>
  >     SQL> SET DISPLAY EDIT STRING;
  >     SQL> SHOW DISPLAY
  >     Output of the query header is enabled
  >     Output of the row counter is enabled
  >     Output using edit strings is enabled
  >     Page length is set to 24 lines
  >     Line length is set to 132 bytes
  >     Display NULL values using "NULL"
  >     SQL>
  >     SQL> SELECT * FROM temp_emp ORDER BY id LIMIT TO 3 ROWS;
  >               ID          SAL
  >              164   $51,712.00
  >              165   $11,676.00
  >              166   $18,497.00
  >     3 rows selected

  > 例2: 出力を読みやすくするためのテキストへのNULL値の置換

  >     SQL> select job_start, job_end,
  >     cont>             (select department_name
  >     cont>              from departments d
  >     cont>              where d.department_code = jh.department_code)
  >     cont> from job_history jh
  >     cont> where employee_id = '00164';
  >      JOB_START     JOB_END
  >      21-Sep-1981   NULL          Board Manufacturing North
  >       5-Jul-1980   20-Sep-1981   Cabinet & Frame Manufacturing
  >     2 rows selected
  >     SQL> set display null string '(still employeed)'
  >     SQL> select job_start, job_end,
  >     cont>             (select department_name
  >     cont>              from departments d
  >     cont>              where d.department_code = jh.department_code)
  >     cont> from job_history jh
  >     cont> where employee_id = '00164';
  >      JOB_START           JOB_END
  >      21-Sep-1981         (still employeed)   Board Manufacturing North
  >       5-Jul-1980         20-Sep-1981         Cabinet & Frame Manufacturing
  >     2 rows selected

  > 例3: SHOWの出力を読みやすくするためのコメント表示の無効化

  >     SQL> show domain id_dom
  >     ID_DOM                          CHAR(5)
  >      Comment:       standard definition of employee id
  >     SQL> set display no comment;
  >     SQL> show domain id_dom
  >     ID_DOM                          CHAR(5)
  >     SQL>

  > 例4: GET ENVIRONMENTの使用による現在のNULL文字列の保存、および問合せの実行後のリストア

  >     SQL> declare :ns varchar(100);
  >     SQL> get environment (session) :ns = NULL_STRING;
  >     SQL> set null;
  >     SQL> select job_start, job_end,
  >     cont>             (select department_name
  >     cont>              from departments d
  >     cont>              where d.department_code = jh.department_code)
  >     cont> from job_history jh
  >     cont> where employee_id = '00164';
  >      JOB_START     JOB_END
  >      21-Sep-1981                 Board Manufacturing North
  >       5-Jul-1980   20-Sep-1981   Cabinet & Frame Manufacturing
  >     2 rows selected
  >     SQL> set display null string :ns;
  >     SQL> select job_start, job_end,
  >     cont>             (select department_name
  >     cont>              from departments d
  >     cont>              where d.department_code = jh.department_code)
  >     cont> from job_history jh
  >     cont> where employee_id = '00164';
  >      JOB_START     JOB_END
  >      21-Sep-1981   NULL          Board Manufacturing North
  >       5-Jul-1980   20-Sep-1981   Cabinet & Frame Manufacturing
  >     2 rows selected