4

既知の固定 GUID 値をテーブルに挿入する SQL サーバー スクリプトがあります。次のようになります。

INSERT INTO MyTable (ID)
VALUES ('BBD098BF-58F0-4A84-90C2-F806D6D06061')

guid は人間が読める形式であることに注意してください。ID は uniqueidentifier であるため、SQL サーバーは文字列を guid データ型に変換する方法を理解しています。

Oracle 用に同じスクリプトを作成する必要があります。ID は RAW(16) タイプです。Oracleは文字列をバイナリのように解釈するため、スクリプトを直接取得しても機能しません。これは、正しいバイナリチャンクの文字列表現である「その他の」文字列である必要があります。

人間が読めるSQLサーバー文字列をOracleが必要とする文字列に変換する方法を知っている人はいますか?

これまでのところ、たとえば.netコードでGUIDをOracleに保存することと、Oracleスクリプトで選択して文字列を取得することしか考えられません。しかし、これはクレイジーです。

ありがとう!

4

1 に答える 1

4

このリンクによると、
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)
)

(guid は「BBD098BF-58F0-4A84-90C2-F806D6D06061」のようなものです)

于 2012-05-08T13:48:42.490 に答える