首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DB2-400中使用CSSID的十六进制值

在DB2-400中使用CSSID的十六进制值
EN

Stack Overflow用户
提问于 2020-02-22 05:50:28
回答 1查看 55关注 0票数 0

我有一个存储过程,其中我正在使用CSSID 65535传递一个值(来自CHARACTER(13) ),并尝试通过它返回一个ID

具体步骤如下:

代码语言:javascript
复制
BEGIN

DECLARE GET_ID_BY_WEB_IDENTIFIER_C1 CURSOR WITH RETURN FOR
SELECT ID FROM TABLE . ITEMT WHERE WEB_IDENTIFIER = P_WEB_IDENTIFIER ;

OPEN GET_ID_BY_WEB_IDENTIFIER_C1 ;
END 

并且参数P_WEB_IDENTIFIER是具有匹配的cssid的字符(26)。我也试过了,它是一个角色13,也有同样的效果。

当我调用这个的时候:

代码语言:javascript
复制
CALL PROGRAM . GET_ID_BY_WEB_IDENTIFIER (x'0213725501A421B9A457123001')

我拿回了我的ID,但当我像这样调用(在生产中通过web调用它)时:

代码语言:javascript
复制
 CALL PROGRAM . GET_ID_BY_WEB_IDENTIFIER ('0213725501A421B9A457123001')

我得到一个转换错误

如何确保只传递字符串'0213725501A421B9A457123001‘就能以这种方式返回我的ID?

EN

回答 1

Stack Overflow用户

发布于 2020-02-22 06:49:05

x'0213725501A421B9A457123001'十六进制字符串文字。

粗略地看一下,它主要表示不可打印的字符。

'0213725501A421B9A457123001'是一个实际的字符串。

在db2上,它的十六进制等效值是x'F0F2F1F3F7F2F5F5F0F1C1F4F2F1C2F9C1F4F5F7F1F2F3F0F0F1'

很大的区别..。

您的web应用程序还需要将其作为十六进制文字传递,请确保将存储的proc parm定义为CCSID 65535 (二进制/非翻译)

您也可以在存储的proc中将字符串值转换为十六进制(二进制)值。操作系统有一些内置的函数可以做到这一点,对于RPG示例,请看这里的https://stackoverflow.com/a/58997608/2933177

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60346673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档