如何在MSSQL中将Oracle Raw 16转换为GUID?以下内容不适用于Oracle DB SQL控制台,
select hextoraw(Raw16Column), *
from OracleDb.PRODUCTS
order by PRODUCTS_ID desc
fetch next 20 rows only
错误:
[42000][936] ORA-00936: missing expression Position: 23
发布于 2021-11-02 23:03:30
如果您正在使用*
,并且还在选择其他列,则必须在*
前面加上表名或别名(您可能希望使用RAWTOHEX
而不是HEXTORAW
):
select p.*,
RAWTOHEX(raw16column)
from PRODUCTS p
order by PRODUCTS_ID desc
fetch next 20 rows only
如果您想要将其转换为具有正确endianess的GUID。,那么:
select p.*,
SUBSTR(raw16column,7,2)
||SUBSTR(raw16column,5,2)
||SUBSTR(raw16column,3,2)
||SUBSTR(raw16column,1,2)
||'-'
||SUBSTR(raw16column,11,2)
||SUBSTR(raw16column,9,2)
||'-'
||SUBSTR(raw16column,15,2)
||SUBSTR(raw16column,13,2)
||'-'
||SUBSTR(raw16column,17,16)
AS guid
from PRODUCTS p
order by PRODUCTS_ID desc
fetch next 20 rows only
db<>fiddle https://dbfiddle.uk/?rdbms=oracle_18&fiddle=1710e0429a5216e1a6fed9a2538b3537
https://stackoverflow.com/questions/69817848
复制相似问题