我有一个普通的字符串athakur@test.com
。它使用一些加密密钥以加密方式存储在oracle DB中。使用的算法在DB2中不可用,我想在DB2中使用相同的数据。
我无法通过复制粘贴直接传输数据,因为字符不同,当我将它从SQL开发人员粘贴到数据工作室时,它基本上会给出不同的字符。所以我试图将加密数据转换为十六进制,然后将十六进制转换为DB2中的数据。但这似乎不起作用。
使用rawtohex
的十六进制加密数据是1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306
但是在我做的时候在DB2中
select x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306' from dual;
我变空了。
知道我缺少什么或者以其他方式复制数据吗?
答案 0 :(得分:0)
DB2的版本和平台是什么?
假设您使用的是Oracle的双表而不是sysibm.sysdummy1等效的版本,那么您的语句应该可以正常工作。
它对我有用,但显示值当然不可读。我怀疑你真的想要
select hex(x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306')
from dual;
您无法直接显示加密值,因为它不是有效的可显示字符。你能做的最好
insert x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306'
into mytbl;
select hex(myfld)
from mytbl;
确保将myfld定义为CHAR(24) FOR BIT DATA