【发布时间】:2014-10-30 06:49:33
【问题描述】:
我有问题!
我的问题是:如何将 .net guid 转换为 oracle raw(16)?
我试过了:
select cast('9e953501-51d1-4701-e053-470f0c0a8ed5' as RAW(16)) from dual;
但它不起作用......
【问题讨论】:
标签: .net oracle guid type-conversion
我有问题!
我的问题是:如何将 .net guid 转换为 oracle raw(16)?
我试过了:
select cast('9e953501-51d1-4701-e053-470f0c0a8ed5' as RAW(16)) from dual;
但它不起作用......
【问题讨论】:
标签: .net oracle guid type-conversion
如果您想在 raw(16) 列中插入 32 个字符的 guid,您可以使用 HEXTORAW,如下例所示:
insert into MyCommands values
( HEXTORAW('b7d394e722874e079f02b22c56ac88b1'),
'DeathMan',
'ReturnTrue'
);
更多(但不是更好)在: https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions064.htm
【讨论】:
你需要使用utl_raw.cast_to_raw:
select utl_raw.cast_to_raw('9e953501-51d1-4701-e053-470f0c0a8ed5') val
from dual
VAL
------------------------------------------------------------------------
39653935333530312D353164312D343730312D653035332D343730663063306138656435
【讨论】:
select cast(replace('9e953501-51d1-4701-e053-470f0c0a8ed5','-') as RAW(16)) from dual;
select cast( translate('{9e953501-51d1-4701-e053-470f0c0a8ed5}','1234567890abcdef-{}','1234567890ABCDEF') as RAW(16)) from dual;
【讨论】: