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