首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SQL将Oracle的RAW(16)转换为.NET的GUID

使用SQL将Oracle的RAW(16)转换为.NET的GUID
EN

Stack Overflow用户
提问于 2021-11-02 23:00:13
回答 1查看 115关注 0票数 0

如何在MSSQL中将Oracle Raw 16转换为GUID?以下内容不适用于Oracle DB SQL控制台,

代码语言:javascript
运行
复制
select hextoraw(Raw16Column), *
from OracleDb.PRODUCTS
order by PRODUCTS_ID desc
fetch next 20 rows only

错误:

代码语言:javascript
运行
复制
[42000][936] ORA-00936: missing expression Position: 23

资源:从Oracle的RAW(16)转换为.NET的GUID

01/server.102/b 14200/functions064.htm s064.htm

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-02 23:03:30

如果您正在使用*,并且还在选择其他列,则必须在*前面加上表名或别名(您可能希望使用RAWTOHEX而不是HEXTORAW):

代码语言:javascript
运行
复制
select p.*,
       RAWTOHEX(raw16column)
from   PRODUCTS p
order by PRODUCTS_ID desc
fetch next 20 rows only

如果您想要将其转换为具有正确endianess的GUID。,那么:

代码语言:javascript
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69817848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档