使用 INTO SQL DESCRIPTOR 创建新的系统描述符结构并将准备好语句列表的描述在此结构中。
对于不透明数据类型的列。DESCRIBE INPUT 语句会设置项目描述符的 EXTYPEID 、EXTYPENAME 、EXTYPELENGTH 、EXTYPEOWNERLENGTH 和 EXTYPEOWNERNAME 字段。
DESCRIBE INPUT 语句执行后,SCALE 和 PRECISION 字段分别包含列的小数位和精度。如果在 SET DESCRIPTOR 语句中设置 SCALE 和 PRECISION,并且将 TYPE 设置为 DECIMAL 或 MONEY,则会修改 LENGTH 字段以调整十进制值的小数位和精度。如果没有将 TYPE 设置为 DECIMAL 或 MONEY,则不设置 SCALE 和 PRECISION 的值,并且 LENGTH 不受影响。
您必须使用 SET DESCRIPTOR 语句修改系统描述符区域的信息,以显示要接收描述的值在内存中的地址。可以将数据类型更改为另一种兼容的类型。此更改会在取得数据值时引起数据转换的发生。
您不能在其它支持 USING SQL DESCRIPTOR 子句(例如 EXECUTE 、FETCH 、OPEN 和 PUT )的语句中使用系统描述符区域。
main() { . . . EXEC SQL allocate descriptor 'desc1' with max 3; EXEC SQL prepare curs1 FROM 'select * from tab'; EXEC SQL describe curs1 using sql descriptor 'desc1'; } EXEC SQL describe curs1 using sql descriptor :desc1var;
系统描述符区域必须符合 X/Open 标准。