属性 SQL 数据代码标识要与 EGL 主变量相关联的 SQL 数据类型。在声明时、验证时或生成的程序运行时,数据库管理系统使用数据代码。
您可能想改变具有基本类型 CHAR、DBCHAR、HEX 或 UNICODE 的主变量的 SQL 数据代码。然而,对于具有其它任何一种基本类型的主变量,SQL 数据代码是固定的。
如果 EGL 从数据库管理系统中检索到列定义,则不要修改检索到的 SQL 数据代码(如果有的话)。
要指示一个表列是变长列还是定长列,可将相应主变量的 SQL 数据代码设置为适当的值,如下表所示。
EGL 基本类型 | SQL 数据类型 | 变长或定长 | SQL 数据代码 |
---|---|---|---|
CHAR | CHAR(缺省值) | 定长 | 453 |
VARCHAR,长度 < 255 | 变长 | 449 | |
VARCHAR,长度 > 254 | 变长 | 457 | |
DBCHAR 和 UNICODE | GRAPHIC(缺省值) | 定长 | 469 |
VARGRAPHIC,长度 < 128 | 变长 | 465 | |
VARGRAPHIC,长度 > 127 | 变长 | 473 |
具有 HEX 类型的 EGL 主变量支持访问具有与 EGL 基本类型不对应的数据类型的任何 SQL 列。
如果将字符数据从 SQL 表列读入到较短的主变量中,则会截断右边的内容。要测试是否发生了截断,请在 EGL if 语句中使用保留字 trunc。
如果将数字数据从 SQL 表列读入到较短的主变量中,则会截断左边的前导零。如果该数字在主变量中仍放不下,则会删除数字右边的小数部分(十进制),并且不发出错误指示。如果仍放不下该数字,则会返回负数 SQL 代码,以指示溢出状态。
下表显示了当 EGL 编辑器的检索功能从数据库管理系统中抽取信息时指定的 EGL 主变量特征。
SQL 数据类型 | EGL 主变量特征 | SQL 数据代码(SQLTYPE) | ||
---|---|---|---|---|
基本类型 | 长度 | 字节数 | ||
BIGINT | HEX | 16 | 8 | 493 |
CHAR | CHAR | 1–32767 | 1–32767 | 453 |
DATE | CHAR | 10 | 10 | 453 |
DECIMAL | DECIMAL | 1-18 | 1–10 | 485 |
DOUBLE | HEX | 16 | 8 | 481 |
FLOAT | HEX | 16 | 8 | 481 |
GRAPHIC | DBCHAR | 1–16383 | 2–32766 | 469 |
INTEGER | BIN | 9 | 4 | 497 |
LONG VARBINARY | HEX | 65534 | 32767 | 481 |
LONG VARCHAR | CHAR | >4000 | >4000 | 457 |
LONG VARGRAPHIC | DBCHAR | >2000 | >4000 | 473 |
NUMERIC | DECIMAL | 1-18 | 1–10 | 485 |
REAL | HEX | 8 | 4 | 481 |
SMALLINT | BIN | 4 | 2 | 501 |
TIME | CHAR | 8 | 8 | 453 |
TIMESTAMP | CHAR | 26 | 26 | 453 |
VARBINARY | HEX | 2–65534 | 1–32767 | 481 |
VARCHAR | CHAR | ≤4000 | ≤4000 | 449 |
VARGRAPHIC | DBCHAR | ≤2000 | ≤4000 | 465 |
类型为 VARCHAR 或 VARGRAPHIC 的 SQL 表列的定义包括最大长度,检索命令使用该最大长度来指定 EGL 主变量的长度。然而,类型为 LONG VARCHAR 或 VARGRAPHIC 的 SQL 表列的定义不包括最大长度,检索命令使用 SQL 数据类型最大长度来指定长度。
确保用于 EGL 系统缺省长格里历格式的格式与对 SQL 数据库管理器指定的日期格式相同。有关如何设置 EGL 格式的详细信息,请参阅 VGVar.currentFormattedGregorianDate。
您会想让两种格式匹配以使系统变量 VGVar.currentFormattedGregorianDate 提供的日期具有 SQL 数据库管理器所期望的格式。
相关概念
SQL 支持