ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

4.4.7 サポートされているPL/I変数宣言

次のリストは、PL/IでSQLプリコンパイラがサポートしている変数宣言構文を示しています。

次の例は、SQLで受け入れられるPL/I宣言と受け入れられないPL/I宣言を示しています。


/* SQL will accept:
*/
DECLARE 1 E, (3 QE1, 3 QE2, 3 QE3) CHAR(10);

DCL P FIXED BIN(10), L FLOAT(53) BIN, K DECIMAL(10,2) FIXED;

DCL N VAR CHAR(10) INITIAL('XXXX');

DCL 1 B_P_REC   BASED(ADDR(S_P_REC)),
        2       PNUM    CHAR(6),
        2       PNAME   CHAR(20),
        2       WEIGHT  FIXED BIN(31),
        2       COLOR   CHAR(6),
        2       CITY    CHAR(10);

DCL D_IND_VEC (5) FIXED BIN(15) DEFINED(S_IND_VEC);

/* SQL will not accept:
*/
DCL A1 (1:10, 1:10) FIXED BIN(15);  /* multidimension table */

DCL B PICTURE '++++,+++,++9';       /* picture clauses */

DCL D1 BIT_FIELD(32);               /* bit fields */

DCL E1 FILE;                        /* file declarations */

DCL 1 F (10), 2 F1   FIXED BIN(15); /* arrays of structures */

DCL J POINTER;                      /* pointer declarations */

DCL K AREA(512);                    /* area declarations */

DCL L OFFSET(K);                    /* offset declarations */

DCL M FIXED BIN(31)                 /* external value declarations */
        EXTERNAL VALUE GLOBALREF;

表4-10は、各SQLデータ型についてサポートされるPL/I変数宣言の例を示しています。

表4-10 SQLデータ型に対するPL/I宣言
SQLの例 PL/Iの例
CHAR(10) DCL STR1 CHAR(10);
VARCHAR(80) DCL STR2 CHAR(80) VAR;
LONG VARCHAR DCL STR3 CHAR(16383) VAR;
TINYINT DCL NUM1 BIN FIXED(7);1
SMALLINT DCL NUM1 BIN FIXED(15);1
INTEGER DCL NUM2 BIN FIXED(31);1
BIGINT DCL NUM3 BYTE_FIELD(8);または
DCL NUM3 FIXED DEC(18);2
FLOAT(6)
FLOAT(25)
DCL NUM4 BIN FLOAT(24);
DCL NUM4 BIN FLOAT(53);
REAL DCL NUM4 BIN FLOAT(24);
DOUBLE PRECISION DCL NUM4 BIN FLOAT(53);
DATE DCL P_DATE (SQL_DATE);
DATE ANSI DCL P_DATE_A SQL_DATE_ANSI;
DATE VMS DCL P_DATE_V SQL_DATE_VMS;
TIME DCL P_TIME SQL_TIME(0);
TIMESTAMP DCL P_TIMESTAMP SQL_TIMESTAMP(2);
INTERVAL DAY TO HOUR DCL P_INTER1 SQL_INTERVAL (DAY TO HOUR);3
LIST OF BYTE VARYING
DCL STR4 CHAR(8);4


1PL/Iでは、固定バイナリ・データ型でスケール変更係数はサポートされません。スケール変更係数を指定するには、PL/Iパック10進数データ型を使用します。
2PL/Iでは、BIGINTはサポートされていません。BIGINTを他の言語に渡すには、BYTE_FIELD(8)を使用します。PL/IでBIGINTを処理するには、FIXED DEC(18)(パック10進数)を使用します。
3サポートされているすべてのINTERVALデータ型は、表4-2を参照してください。
4PL/Iでは、LIST OF BYTE VARYINGデータ型はサポートしていません。この例は、8バイトの文字列を使用して、セグメント化された文字列識別子、リストの先頭要素のポインタを取得する方法を示しています。(必要な場合、かわりにBIGINTを使用することもできます。)このリストの個別要素の値を取得するには、CHARデータ型またはVARCHARデータ型のホスト言語変数を使用します。

オンライン・サンプル・プログラムsql_all_datatypes.splには、変数を宣言してSQL文で使用する例が用意されています。また、このプログラムは、様々なSQLデータ定義文およびデータ操作文も示します。SQLをインストールした後、プログラムを出力、入力または検索することにより、様々なトピックに関するサンプル・コードを見つけることができます。