PP2 does not recognize every possible PL/I variable declaration as valid for use in a SQL statement. The following table is a list of the equivalent PL/I definitions for the database.
For those types which have no direct PL/I declaration, the runtime processing allows returning data to one of the other types.
BEGIN DECLARE and END DECLARE are documented in Teradata Vantage™ - SQL Stored Procedures and Embedded SQL, B035-1148.
Data Type | Declaration | Notes |
---|---|---|
BYTE | No direct equivalent |
Data can be returned to any valid host variable, however PP2 does not convert the data. |
VARBYTE | No direct equivalent |
|
CHAR(m) | DCL identifier CHAR[(m)]; |
The integer m must be positive. If m is not specified, a default of CHAR(1) is used. |
VARCHAR(m) | DCL identifier CHAR[(m)] VAR[YING]; |
|
TIME | DCL identifier CHAR[(m)] |
The length of the char identifier must be 15. |
TIMESTAMP | DCL identifier CHAR [(m)] |
The length of the char identifier must be 35. |
DATE | DCL identifier FIXED BIN[ARY] (m); |
The integer m must be positive, such that 16 ≤ m ≤31. The database normally returns a DATE type field as integer. It is possible to return the value in character string format, as long as the length of the receiving field is sufficient. The DATEFORM=ANSIDATE format returns the DATE type field as CHAR (10). |
DECIMAL(m,n) | DCL identifier FIXED DEC[IMAL] [(m[,n])]; |
The precision and scale integers (m,n) must be positive such that m ≤ 15 and 0 ≤ n ≤ m. n set to zero is equivalent to specifying m alone. If no precision and scalar attributes are specified, a default of FIXED DEC(15) is used. |
NUMERIC(m,n) | DCL identifier FIXED DEC[IMAL][(m[,n])]; |
|
FLOAT* | DCL identifier FLOAT BIN[ARY] (m); FLOAT DEC[IMAL] (n); or DCL identifier |
Integer m must be positive, such that 1 ≤ m ≤ 21; integer n must be positive such that 1 ≤ n ≤ 6. |
REAL* | DCL identifier FLOAT BIN[ARY] (:m); FLOAT DEC[IMAL](n); or DCL identifier |
|
DOUBLE PRECISION* | DCL identifier FLOAT BIN[ary](m); FLOAT DEC[IMAL](n); or DCL identifier |
|
FLOAT** | DCL identifier FLOAT BIN[ARY] (m); FLOAT DEC[IMAL] (n); or DCL identifier |
Integer m must be positive, such that 22 ≤ m ≤ 53; integer n must be positive such that 7 ≤ n ≤ 16. |
REAL** | DCl identifier FLOAT BIN[ARY](m); FLOAT DEC[IMAL](n); or DCL identifier |
|
DOUBLE PRECISION** | DCL identifier FLOAT BIN[ARY(m); FLOAT DEC[IMAL](n); or DCL identifier |
|
BYTEINT | No direct equivalent |
Data can be returned to any valid numeric format if the value fits into the field specified. |
SMALLINT | DCL identifier FIXED BIN[ARY] [(m[,n])]; |
Integer m must be positive, such that 1 ≤ m ≤15. n is normally zero for integer values, but if specified, PP2 ignores the value. If m is not specified, a default of FIXED BINARY(15) is used. |
INTEGER | DCL identifier FIXED BIN[ARY] (m[,n]); |
Integer m must be positive, such that 16 ≤ m ≤ 31. n is normally zero for integer values, but if specified, PP2 ignores the value. |
GRAPHIC(m) | DCL identifier GRAPHIC[(m)]; |
The integer “m” is the number of graphic characters (not bytes) and must be positive. If “m” is not specified, a default of GRAPHIC(1) is used. |
VARGRAPHIC (m) | DCL identifier GRAPHIC[(m)] VAR[YING]; |
*single precision
**double precision