ElD*_*Dog 4 sql sql-server oracle
我有一个 sql server 脚本,它将已知的固定 guid 值插入到表中。看起来像:
INSERT INTO MyTable (ID)
VALUES ('BBD098BF-58F0-4A84-90C2-F806D6D06061')
Run Code Online (Sandbox Code Playgroud)
请注意,guid 是人类可读的形式。由于ID是uniqueidentifier,sql server理解如何将字符串转换为guid数据类型。
我需要为Oracle制作相同的脚本,ID是RAW(16)类型。直接获取脚本是行不通的,因为 Oracle 将字符串解释为二进制文件,它应该是一些“其他”字符串,即正确二进制块的字符串表示形式。
有谁知道如何将人类可读的sql服务器字符串转换为Oracle所需的字符串?
例如,到目前为止,我只能考虑在 .net 代码中将 guid 保存到 Oracle,而不是在 oracle 脚本中进行选择来获取字符串。但这太疯狂了。
谢谢!
根据此链接,
Sqlserver 反转了前 3 个部分,因此您需要执行以下操作:
hextoraw(substr(guid,7,2)||
substr(guid,5,2)||
substr(guid,3,2)||
substr(guid,1,2)||
substr(guid,12,2)||
substr(guid,10,2)||
substr(guid,17,2)||
substr(guid,15,2)||
substr(guid,20,4)||
substr(guid,25,12)
)
Run Code Online (Sandbox Code Playgroud)
(引导类似于“BBD098BF-58F0-4A84-90C2-F806D6D06061”)
归档时间: |
|
查看次数: |
12140 次 |
最近记录: |