南大通用GBase8s 常用SQL语句(243)

在 X/Open 程序中设置 TYPE 字段
在 X/Open 模式中,您必须在 TYPE 字段中使用该数据类型的整数代码的 X/Open 集。
如果您在 SET DESCRIPTOR 语句中使用 ILENGTH、IDATA 或 ITYPE 字段,则出现警告消息。该警告表示这些字段不是系统描述符区域的标准 X/Open 字段。
对于比较容易维护的代码,请使用这些 X/Open SQL 数据类型的预定义的常量,而不是它们的实际整数值。在 $GBASEDBT/incl/public/sqlxtype.h 头文件中定义这些常量。
使用 DECIMAL 或 MONEY 数据类型
如果您为 DECIMAL 或 MONEY 数据类型设置 TYPE 字段,且您想要使用标度或精度而不是缺省的值,则请设置 SCALE 和 PRECISION 字段。 您不需要为 DECIMAL 或 MONEY 项设置 LENGTH 字段;相应地从 SCALE 和 PRECISION 字段设置 LENGTH 字段。
使用 DATETIME 或 INTERVAL 数据类型
如果您为 DATETIME 或 INTERVAL 值设置 TYPE 字段,则 DATA 字段可为 DATETIME 或 INTERVAL 文字或字符串。如果您使用字符串,则必须把 LENGTH 字段编码为限定符值。
要为 DATETIME 或 INTERVAL 字符串确定编码的限定符,请在 datetime.h 头文件中使用 datetime 和 interval 宏。
如果您将 DATA 设置为 DATETIME 或 INTERVAL 的主变量,则不需要显式地将 LENGTH 设置为编码的限定符整数。
设置 DATA 或 IDATA 字段
当您设置 DATA 或 IDATA 字段时,请使用数据的适当的类型(对于 CHAR 或 VARCHAR 使用字符串,对于 INTEGER 使用整数,等等)。
如果设置任何 DATA 之外的内容,则不定义 DATA 的值。您不可为项设置 DATA 或 IDATA 字段而不为那个项设置 TYPE。 如果您为一项将 TYPE 字段设置为字符类型,则您还必须设置 LENGTH 字段。如果您未为字符项设置 LENGTH 字段,则会收到错误。
设置 LENGTH 或 ILENGTH 字段
如果您的 DATA 或 IDATA 字段包含字符串,则您必须指定 LENGTH 的值。如果您指定 LENGTH=0,则自动地将 LENGTH 设置为字符串的最大长度。 DATA 或 IDATA 字段可包含最多 368 字节的文字字符串,或从 CHAR 或 VARCHAR 数据类型的字符变量派生的字符串。这提供了一种自动地确定 DATA 或 IDATA 字段中字符串长度的方法。
如果 DESCRIBE 语句在 SET DESCRIPTOR 语句之前,则自动地将 LENGTH 设置为在您的表中指定的字符字段的最大长度。
此信息对于 ILENGTH 是相同的。当您创建不符合 X/Open 标准的动态的程序时,请使用 ILENGTH。
设置 INDICATOR 字段
如果您想要将 NULL 值放到系统描述符区域之内,请将 INDICATOR 字段设置为 -1,且不设置 DATA 字段。
如果您将 INDICATOR 字段设置 0 来表示该数据不为 NULL,则必须设置 DATA 字段。
设置 Opaque 类型字段
下列项描述符字段提供关于以 opaque 类型作为其数据类型的列的信息:
EXTYPEID 字段存储 opaque 类型的扩展的标识符。此整数值必须对应于 sysxtdtypes 系统目录表的 extended_id 列中的值。
EXTYPENAME 字段存储 opaque 类型的名称。此字符值必须对应于 sysxtdtypes 系统目录表中带有与 extended_id 值相匹配的行的 name 列中的值。
EXTYPELENGTH 字段存储 opaque 类型名称的长度。此整数值是 EXTYPENAME 字段中字符串的长度,以字节为单位。
EXTYPEOWNERNAME 字段存储 opaque 类型所有者的名称。此字符值必须对应于 sysxtdtypes 系统目录表中与 extended_id 值相匹配的行的 owner 列中的值。
EXTYPEOWNERLENGTH 字段存储 EXTTYPEOWNERNAME 字段中值的长度。此整数是 EXTYPEOWNERNAME 字段中字符串的长度,以字节为单位。
要获取更多关于 sysxtdtypes 系统目录表的信息,请参阅 GBase 8s SQL 参考指南。
设置 Distinct 类型字段
下列项描述符字段提供关于以 distinct 类型为其数据类型的列的信息:
SOURCEID 字段存储源数据类型的扩展的标识符。
如果该 distinct 类型的源类型是 opaque 数据类型,则设置此字段。此整数值必须对应于 sysxtdtypes 系统目录表中其 extended_id 值与您正在设置的 distinct 类型相匹配的行的 source 列中的值。
SOURCETYPE 字段存储源数据类型的数据类型常量。
此值是该 distinct 类型的源类型的内建的数据类型的数据类型常量。SOURCETYPE 字段的代码与 TYPE 字段的代码相同(设置 TYPE 或 ITYPE 字段页)。此整数值必须对应于 sysxtdtypes 系统目录表中其 extended_id 值与您正在设置的 distinct 类型相匹配的行的 type 列中的值。
要获取更多关于 sysxtdtypes 系统目录表的信息,请参阅 GBase 8s SQL 参考指南。
修改由 DESCRIBE 语句设置的值
您可使用 DESCRIBE 语句来修改系统描述符区域的内容,在它被设置之后。
您在 SELECT 或 INSERT 语句上使用 DESCRIBE 之后,必须检查以确定将 TYPE 字段设置为 11 还是 12 来表示 TEXT 或 BYTE 数据类型。如果 TYPE 包含 11 或 12,则您必须使用 SET DESCRIPTOR 语句来将 TYPE 重置为 116,来表示 FILE 类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值