当在基于 EBCDIC 的系统与基于 ASCII 的系统之间或者在使用不同代码页的系统之间移动数据时,就会发生转换。仅当在生成时使用的链接选项部件在 callLink 或 asynchLink 元素中指定了 PROGRAMCONTROLLED 作为 conversionTable 属性的值时,才有可能进行转换。但是,如果指定了 PROGRAMCONTROLLED,但 SysVar.callConversionTable 是空白的,则不会发生转换。
应该使用 SysVar.callConversionTable 来在程序中切换转换表,或者在程序中打开或关闭数据转换。
SysVar.callConversionTable 被初始化为空白。要使转换发生,请确保链接选项部件包含 PROGRAMCONTROLLED 值(如前所述),并将转换表的名称移动到系统变量中。可以将 SysVar.callConversionTable 设置为星号(*)以使用缺省本地语言代码的缺省转换表。此设置引用目标系统上的缺省语言环境(倘若该语言环境映射至其中一种可对 targetNLS 构建描述符选项指定的语言的话)。
转换是在发起调用或文件访问的系统上执行的。当定义多级别记录结构时,转换是对最低级别的项(没有子结构的项)执行的。
对于 SysVar.callConversionTable 与另一个值的比较,仅当完全匹配时测试结果才为 true。例如,如果用小写值来初始化 SysVar.callConversionTable,则小写值只与小写值相匹配。
为了进行比较,您对 SysVar.callConversionTable 指定的值保持不变。