2016-02-26 25 views
0

我试图把MQMD.MsgId到XMLNSC.MsgId领域,像这样:如何将hexBinary(MsgId)转换为esql中的字符?

SET OutputRoot.XMLNSC.Root.MsgId = InputRoot.MQMD.MsgId;

但是我却越来越X'414d51204d39392e5352442e4330302e56c47bd4203b3708',而不是仅仅414d51204d39392e5352442e4330302e56c47bd4203b3708

另外我试图将MsgId强制转换为CHARACTER,但结果相同。

如何摆脱引号和'X'?

+0

你有下面的答案,但请记住,的MsgId字段是一个二进制领域结,这意味着,如果你在的的MsgID场移动的字符数据需要数据转换的平台,MsgId字段不会被转换。 –

+0

谢谢,我只是认为有更多漂亮的解决方案,然后使用子字符串。 – CaptainFreedom

+0

你是否有意在那里发表评论。没有任何意义。你是否理解数据转换的含义 - 或者说缺少它? –

回答

1

你可以尝试这样的事:

DECLARE msgId CHARACTER CAST(InputRoot.MQMD.MsgId AS CHARACTER); 
SET OutputRoot.XMLNSC.Root.MsgId = SUBSTRING(msgId FROM 3 FOR LENGTH(msgId) - 3);