我正在寻找一个解决方案,将String
的Oracle RAW GUID
转换为标准的GUID
。我找不到适合我的用例的解决方案。下面是我要寻找的示例:
ORACLE RAW (String): 9BB2A2B8DF8747B0982F2F1702E1D18B
需要使用Java代码将其转换为标准或带括号的GUID,
B8A2B29B-87DF-B047-982F-2F1702E1D18B or {B8A2B29B-87DF-B047-982F-2F1702E1D18B}
提前感谢你的帮助。
3条答案
按热度按时间xggvc2p61#
一个简单的方法是在选择RAW GUID时将其转换为VARCHAR。然后将其作为字符串从结果集中读取。公式如下:
这是我找到查询的引用(我必须调整它,因为原始查询有一些错误):https://community.oracle.com/thread/1063096?tstart=0。
或者,如果您想使用Java来执行此操作,则将上述解决方案翻译为Java非常简单:
由于
SYS_GUID()
的Oracle实现与RFC 4122不兼容,因此不可能以更标准的方式使用java.util.UUID
类。请参见Is Oracle's SYS_GUID() UUID RFC 4122 compliant?fjaof16o2#
我写了一个控制台应用程序来做这个转换。它很有用,因为我每天需要做很多次。
有必要编译并定义path上的输出目录。
https://github.com/lucassc/oracleuuid。
xzlaal3s3#
SQL版本
1. OracleRaw的GUID
--输入GUID:B 047 - 982 F-2F 1702 E1 D18 B型电动汽车
--输出OracleRaw:9 BB 2A 2B 8DF 8747 B 0982 F2 F1702 E1 D18 B型柴油机
2. OracleRaw到GUID
--输入Oracle原始数据:9 BB 2A 2B 8DF 8747 B 0982 F2 F1702 E1 D18 B型柴油机
--输出GUID:B 047 - 982 F-2F 1702 E1 D18 B型电动汽车