将加密的String从Oracle DB移动到DB2

时间:2015-11-20 09:04:21

标签: encryption plsql oracle11g db2

我有一个普通的字符串athakur@test.com。它使用一些加密密钥以加密方式存储在oracle DB中。使用的算法在DB2中不可用,我想在DB2中使用相同的数据。

我无法通过复制粘贴直接传输数据,因为字符不同,当我将它从SQL开发人员粘贴到数据工作室时,它基本上会给出不同的字符。所以我试图将加密数据转换为十六进制,然后将十六进制转换为DB2中的数据。但这似乎不起作用。

使用rawtohex的十六进制加密数据是1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306但是在我做的时候在DB2中

select x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306' from dual;

我变空了。

知道我缺少什么或者以其他方式复制数据吗?

1 个答案:

答案 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