我有问题!
我的问题是:如何将.net guid转换为oracle raw(16)?
我尝试过:
select cast('9e953501-51d1-4701-e053-470f0c0a8ed5' as RAW(16)) from dual;
但是它不起作用...
您需要使用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;
如果要在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