在 .NET 中始终使用您的标准 GUID...
当您想在 Oracle 中插入一些 GUID 时,只需调用 Guid.ToString ( "N") 并将该字符串提供给 Oracle(在此示例中,参数名称为 MyNETVAL):
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 时,您使用:
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 中...您不会使用转换代码污染您的代码,并且在切换到其他 DB 时可以保持代码代码相同- 只需更改 SQL 即可启动并运行... SQL 可以使用其他 DB 变得更简单,因为其中一些遵循 Windows 的 GUID 格式...