SQL version
1. GUID to OracleRaw
-- Input GUID: B8A2B29B-87DF-B047-982F-2F1702E1D18B
-- Output OracleRaw: 9BB2A2B8DF8747B0982F2F1702E1D18B
SELECT 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))
FROM (SELECT 'B8A2B29B-87DF-B047-982F-2F1702E1D18B' guid FROM dual);
2. OracleRaw to GUID
-- Input OracleRaw: 9BB2A2B8DF8747B0982F2F1702E1D18B
-- Output GUID: B8A2B29B-87DF-B047-982F-2F1702E1D18B
SELECT UPPER(substr(hextoraw(oracleRaw), 7, 2) || substr(hextoraw(oracleRaw), 5, 2) ||
substr(hextoraw(oracleRaw), 3, 2) || substr(hextoraw(oracleRaw), 1, 2) || '-' ||
substr(hextoraw(oracleRaw), 11, 2)|| substr(hextoraw(oracleRaw), 9, 2) || '-' ||
substr(hextoraw(oracleRaw), 15, 2)|| substr(hextoraw(oracleRaw), 13, 2)|| '-' ||
substr(hextoraw(oracleRaw), 17, 4)|| '-'|| substr(hextoraw(oracleRaw), 21, 12))
FROM (SELECT '9BB2A2B8DF8747B0982F2F1702E1D18B' oracleRaw FROM dual);