如何将.net guid转换为oracle raw(16)

问题描述 投票:0回答:3

我有问题!

我的问题是:如何将.net guid转换为oracle raw(16)?

我尝试过:

select cast('9e953501-51d1-4701-e053-470f0c0a8ed5' as RAW(16)) from dual;

但是它不起作用...

.net oracle guid type-conversion
3个回答
0
投票

您需要使用utl_raw.cast_to_raw

select utl_raw.cast_to_raw('9e953501-51d1-4701-e053-470f0c0a8ed5') val
  from dual

                                     VAL
------------------------------------------------------------------------
39653935333530312D353164312D343730312D653035332D343730663063306138656435

0
投票
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;

0
投票

如果要在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

© www.soinside.com 2019 - 2024. All rights reserved.