设置 TYPE 或 ITYPE 字段

使用整数值来为每一项设置 TYPEITYPE 的值。
SQL 数据类型 整数值 X-Open 整数值 SQL 数据类型 整数值 X-Open 整数值
CHAR 0 1 MONEY 8
SMALLINT 1 4 DATETIME 10
INTEGER 2 5 BYTE 11
FLOAT 3 6 TEXT 12
SMALLFLOAT 4 VARCHAR 13
DECIMAL 5 3 INTERVAL 14
SERIAL 6 NCHAR 15
DATE 7 NVARCHAR 16
下表罗列以 GBase 8s 表示可用的附加的数据类型的整数值。
SQL 数据类型 整数值 SQL 数据类型 整数值
INT8 17 固定长度 OPAQUE 类型 41
SERIAL8 18 LVARCHAR(仅限于客户端侧) 43
SET 19 BOOLEAN 45
MULTISET 20 BIGINT 52
LIST 21 BIGSERIAL 53
ROW(未命名的) 22 IDSSECURITYLABEL 2061
COLLECTION 23 ROW(命名的) 4118
可变长 OPAQUE 类型 40    

在系统目录中,相同的 TYPE 常量还可出现在 syscolumns.coltype 列中。请参阅 GBase 8s SQL 参考指南

对于更易于维护的代码,请使用为这些 SQL 数据类型预定义的常量,而不是它们的实际整数值。在 $GBASEDBT/incl/public/sqltypes.h 头文件中定义这些常量。然而,您不可在 SET DESCRIPTOR 语句中使用实际的常量名称。相反,将该常量赋值给整数主变量,并在 SET DESCRIPTOR 语句文件中指定该主变量。

下列示例展示您可在 GBase 8s ESQL/C 中如何设置 TYPE 字段:
main()
        {
        EXEC SQL BEGIN DECLARE SECTION;
        int itemno, type;
        EXEC SQL END DECLARE SECTION;
        ...
        EXEC SQL allocate descriptor 'desc1' with max 5;
        ...
        type = SQLINT; itemno = 3;
        EXEC SQL set descriptor 'desc1' value :itemno type = :type;
        }

对于 ITYPE,此信息时唯一的。当您创建不符合 X/Open 标准的动态的程序时,请使用 ITYPE