【发布时间】:2017-07-06 17:25:02
【问题描述】:
应该这么简单
SET OutputRoot.BLOB.BLOB = CAST(MYSTRING AS BLOB);
但是当我这样做时,IIB 会引发错误
尝试将字符串“ABC”转换为字节字符串,但该字符串的格式错误。必须有偶数个十六进制数字(0-9、a-f、A-F)。
【问题讨论】:
标签: ibm-integration-bus extended-sql
应该这么简单
SET OutputRoot.BLOB.BLOB = CAST(MYSTRING AS BLOB);
但是当我这样做时,IIB 会引发错误
尝试将字符串“ABC”转换为字节字符串,但该字符串的格式错误。必须有偶数个十六进制数字(0-9、a-f、A-F)。
【问题讨论】:
标签: ibm-integration-bus extended-sql
如您所见,您需要的 CAST-function 语法是
CAST( <source_expression> AS <DataType> CCSID <expression> )
所以在你的代码中是
CAST( MYSTRING AS BLOB CCSID 1208 )
CCSID 参数仅用于与其中一种字符串数据类型之间的转换。使用 CCSID 参数指定源或目标字符串的代码页。 [Source]
因此,您可以使用 编码字符集标识符 (CCSID) 定义code page。例如,1208 是 UTF-8 with IBM PUA 的 CCSID。您可以看到 IBM 的 CCSID here 的列表。
如果您想更详细地了解此主题的信息,您可以查看 Version 9.0.0 或 Version 10.0.0 的 IIB 文档。
【讨论】:
就我而言,我需要将其更改为 AS BLOB CCSID 1208 我现在需要了解 CCSID 的含义。
【讨论】: