首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Oracle的RAW(16)转换为.NET的GUID

从Oracle的RAW(16)转换为.NET的GUID
EN

Stack Overflow用户
提问于 2011-09-02 22:18:22
回答 4查看 40.1K关注 0票数 45

我在手动调试.NET应用程序时遇到困难,Guid值在.NET和Oracle之间存在差异。

  • 17D89D326C2142D69B989F5201288DBF

  • C# reads:

  • Oracle读取:

代码语言:javascript
复制
- `329DD817216CD6429B989F5201288DBF`

我如何能够手动调试,即从C#的GUID中粘贴该值到oracle查询中并获得正确的结果(反之亦然)?

EN

Stack Overflow用户

发布于 2011-09-02 22:56:48

只要用你的标准GUID在.NET.

当您想在Oracle中插入一些GUID时,只需调用Guid.ToString ( "N")并将该字符串提供给Oracle (在本例中,param名称为MyNETVAL):

代码语言:javascript
复制
INSERT INTO MyTable ( MyRAWCol)
SELECT HEXTORAW (SUBSTR (MyNETVal, 6, 2) || SUBSTR (MyNETVal, 4, 2) || SUBSTR (MyNETVal, 2, 2) || SUBSTR (MyNETVal, 0, 2) || SUBSTR (MyNETVal, 10, 2) || SUBSTR (MyNETVal, 8, 2) || SUBSTR (MyNETVal, 14, 2) || SUBSTR (MyNETVal, 12, 2) || SUBSTR (MyNETVal, 16, 16)) FROM DUAL;

当从Oracle读取RAW时,可以使用:

代码语言:javascript
复制
SELECT 
SUBSTR (HexV, 6, 2) || SUBSTR (HexV, 4, 2) || SUBSTR (HexV, 2, 2) || SUBSTR (HexV, 0, 2) || SUBSTR (HexV, 10, 2) || SUBSTR (HexV, 8, 2) || SUBSTR (HexV, 14, 2) || SUBSTR (HexV, 12, 2) || SUBSTR (HexV, 16, 16) AS MyNETVal
FROM (SELECT RAWTOHEX (MyRAWCol) HexV FROM MyTable);

然后,可以将返回的MyNETVal输入到new Guid (MyNETVal)中。

这样,您的代码总是处理.NET格式,字节切换发生在Oracle中.您不使用转换代码来优化您的代码,并且可以在切换到其他DB时保持代码相同--只需更改SQL,您就可以启动并运行.SQL可以与其他DB一起变得更简单,因为其中一些数据库遵循Windows的GUID格式.

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

https://stackoverflow.com/questions/7289734

复制
相关文章

相似问题

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