当前应用编码方案 特殊寄存器
当前应用程序编码方案指定了动态语句使用的编码方案。 它允许应用程序指示用于处理数据的编码方案。 REXX应用程序或用REXX编写的存储过程不支持此寄存器。
特殊寄存器中的值是CCSID的字符表示。 虽然可以使用ASCII、EBCDIC或UNICODE值来设置特殊寄存器,但特殊寄存器中存储的是数字CCSID的字符表示形式,与SET CURRENT APPLICATION ENCODING SCHEME语句中使用的值相对应。 不存储ASCII、EBCDIC或UNICODE值。 CCSID_ENCODING标量函数可用于从数字CCSID值获取ASCII、EBCDIC或UNICODE值。
数据类型为CHAR(8)。 如有必要,在右侧用空格填充数值,使其长度为8字节。
对于存储过程和用户定义的函数,CURRENT APPLICATION ENCODING SCHEME特殊寄存器的初始值由与过程或函数关联的程序包的ENCODING绑定选项的值确定,或者由编译的SQL函数或本机SQL过程的CREATE FUNCTION、ALTER FUNCTION、CREATE PROCEDURE或ALTER PROCEDURE语句的APPLICATION ENCODING SCHEME选项确定。 如果未指定选项,则初始值为安装面板 DSNTIPF 上的 DEFAULT APPLICATION ENCODING SCHEME 字段的值。
对于基本触发器,当前应用程序编码方案特殊寄存器的初始值为Unicode。 对于高级触发器,当前应用编码方案特殊寄存器的初始值是安装面板DSNTIPF上默认应用编码方案字段的值。
示例
当前应用编码方案专用寄存器可以像其他专用寄存器一样使用: EXEC SQL VALUES(CURRENT APPLICATION ENCODING SCHEME) INTO :HV1;
EXEC SQL INSERT INTO T1 VALUES (CURRENT APPLICATION ENCODING SCHEME);
EXEC SQL SET :HV1 = CURRENT APPLICATION ENCODING SCHEME;
EXEC SQL SELECT C1 FROM T1 WHERE C1 = CURRENT APPLICATION ENCODING SCHEME;