次のリストは、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をインストールした後、プログラムを出力、入力または検索することにより、様々なトピックに関するサンプル・コードを見つけることができます。