Data Types
TDV supports several data types in SQL Script:
| • | All of the character strings, numeric, date, time, and TIMESTAMP data types that SQL supports, plus BLOB, CLOB, ROW, and XML. For details, see Supported Data Types. |
| • | Custom data types. SQL Script lets you declare custom data types for convenience and clarity. You can declare them locally or make them PUBLIC. For details, see DECLARE TYPE. |
The following guidelines apply to TDV data type support:
| • | References to PUBLIC types must be fully qualified. Such references are valid anywhere the target data type is valid. |
| • | You can use a modifier named PIPE in procedure parameter declarations to pipeline (stream) the output. For details, see PIPE Modifier. |
| • | After you have declared a custom data type, you can use its name anywhere in the script that you can use a built-in type. |
| • | A PUBLIC type in another procedure can be accessed by specifying the fully qualified path to that procedure, followed by a period, followed by the name of the type. |
Supported Data Types
The following table lists all the data types supported in SQL Scripts. All types with optional sizes have default values, as noted.
|
Data Type |
Range or List of Values |
||||||||||||
|
Integer Numeric Types |
|||||||||||||
|
BIT |
0 or 1 |
||||||||||||
|
TINYINT |
-128 to 127 |
||||||||||||
|
SMALLINT |
-32768 to 32767 |
||||||||||||
|
INTEGER |
-231 to +231 - 1 |
||||||||||||
|
INT |
An alias for INTEGER |
||||||||||||
|
BIGINT |
-263 to +263 - 1 |
||||||||||||
|
Non-integer Numeric Types |
|||||||||||||
|
FLOAT |
Approximately 7-digit-precision floating point |
||||||||||||
|
REAL |
An alias for FLOAT |
||||||||||||
|
DOUBLE |
Approximately 17-digit-precision floating point |
||||||||||||
|
DECIMAL[(p,s)] |
Fixed precision number with up to p (precision) digits total and up to s (scale) digits to the right of the decimal point. Default: DECIMAL(32,2). |
||||||||||||
|
NUMERIC[(p,s)] |
Same as DECIMAL, except default is NUMERIC(32,0) |
||||||||||||
|
Date and Time Types |
|||||||||||||
|
DATE |
|
||||||||||||
|
TIME |
|
||||||||||||
|
TIMESTAMP |
|
||||||||||||
|
String and Binary Types |
|||||||||||||
|
CHAR[(n)] |
Character string of exactly n characters, padded with spaces. Default for n: 255. |
||||||||||||
|
VARCHAR[(n)] |
Unpadded character string of up to n characters. Default for n: 255. |
||||||||||||
|
BINARY[(n)] |
Binary string of exactly n bytes, right-padded as necessary with bytes of zeroes. Default for n: 255. |
||||||||||||
|
Unpadded binary string of up to n bytes. Default for n: 255. |
|||||||||||||
|
Other Types |
|||||||||||||
|
BOOLEAN |
A value of TRUE or FALSE. (‘BOOLEAN’ is not a valid value.) |
||||||||||||
|
CURSOR |
An untyped cursor (because no list of fields is provided) |
||||||||||||
|
CURSOR(...) |
A cursor defined as a set of fields (‘columns’) |
||||||||||||
|
CURSOR(rowType) |
A CURSOR declared by referencing a ROW type (instead of specifying fields directly) |
||||||||||||
|
ROW(...) |
A set of fields (also called ‘columns’) |
||||||||||||
|
XML [ ( schema-details: URI target-namespace-uri | NO NAMESPACE |
An XMLvalue. Default: ‘No Schema.’
|
||||||||||||
Example (Declaring a Custom Data Type)
You can declare a custom data type in SQL Script for later referencing:
DECLARE TYPE SocialSecurityType VARCHAR(12);
DECLARE ssn SocialSecurityType;
DECLARE data ROW (name VARCHAR(40), ssn SocialSecurityType);
Example (Referencing a Custom Data Type)
If you have declared a custom data type in SQL Script named SocialSecurityType in a procedure named TypeSample in the folder /shared/examples, you can reference the type as follows:
DECLARE ssn /shared/examples/TypeSample.SocialSecurityType;
Example (XML Data Type)
You can declare an XML data type in SQL Script as follows:
cast ('<item> </item>' as XML (SEQUENCE))cast('<bar></bar>' as XML(SEQUENCE(ANY)))PROCEDURE item()
BEGIN
DECLARE item
XML (SEQUENCE (XMLSCHEMA URI LOCATION 'http://www.w3.org/2001/
XMLSchema-instance' [^] ELEMENT xsi));
END