Encryption 将加密字符串从Oracle DB移动到DB2

Encryption 将加密字符串从Oracle DB移动到DB2,encryption,plsql,oracle11g,db2,Encryption,Plsql,Oracle11g,Db2,我有一个普通字符串athakur@test.com。它使用一些加密密钥加密存储在oracle数据库中。使用的algo在DB2中不可用,我希望在DB2中使用相同的数据 我无法通过复制粘贴直接传输数据,因为字符不同。当我将数据从SQL developer粘贴到DataStudio时,基本上会给出不同的字符。所以我尝试将加密数据转换为十六进制,然后在DB2中将十六进制转换为数据。但这似乎不起作用 使用rawtohex的十六进制加密数据是1E70A8495CEC19EEBDBA7A652344C850B

我有一个普通字符串
athakur@test.com
。它使用一些加密密钥加密存储在oracle数据库中。使用的algo在DB2中不可用,我希望在DB2中使用相同的数据

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

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

select x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306' from dual;
我正在变空


你知道我遗漏了什么或者其他复制数据的方法吗?

什么版本和平台的DB2

假设您所使用的版本具有Oracle的双表而不是sysibm.sysdummy1等效表,那么您的语句应该可以工作

它确实对我有用,尽管显示值当然无法读取。我怀疑你真的想要

select hex(x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306') 
from dual;

无法直接显示加密值,因为它不是有效的可显示字符。尽你所能

insert x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306'
into mytbl;

select hex(myfld)
from mytbl;

确保将位数据的myfld定义为
CHAR(24)

什么版本和平台的DB2

假设您所使用的版本具有Oracle的双表而不是sysibm.sysdummy1等效表,那么您的语句应该可以工作

它确实对我有用,尽管显示值当然无法读取。我怀疑你真的想要

select hex(x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306') 
from dual;

无法直接显示加密值,因为它不是有效的可显示字符。尽你所能

insert x'1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306'
into mytbl;

select hex(myfld)
from mytbl;

确保将位数据的myfld定义为
CHAR(24)

1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306
已经是十六进制值。我要返回相应的加密值。不能直接显示加密值,必须使用
HEX()
显示加密值的十六进制表示形式。请参阅我的更新。没有
1E70A8495CEC19EEBDBA7A652344C850B1266E74247A9306
已经是十六进制值。我要返回相应的加密值。不能直接显示加密值,必须使用
HEX()
显示加密值的十六进制表示形式。查看我的更新。