A RAW(16)
в основном : GUID: это шестнадцатеричное шестнадцатеричное значение. Поэтому один из вариантов - просто оставить его в покое. Oracle будет неявно между характером и шестнадцатеричной, так что если вы ищете строку, чье исходное значение является FE2BF132638011E3A647F0DEF1FEB9E8
, вы можете использовать строку в запросе:
SELECT *
FROM myTable
WHERE myRaw16Column = 'FE2BF132638011E3A647F0DEF1FEB9E8';
Если вы хотите изменить RAW(16)
к CHAR(32)
для вы можете использовать RAWTOHEX
, как предлагает @tbone.
INSERT INTO NewTable (myGUIDColumn, ...)
SELECT RAWTOHEX(myRawColumn), ...
FROM OldTable
Если вы хотите, чтобы сделать ее CHAR(36)
тире в формате GUID, все становится сложно быстро:
INSERT INTO NewTable (myGUIDColumn, ...)
SELECT REGEXP_REPLACE(myRaw16Column, '(.{8})(.{4})(.{4})(.{4})(.*)', '\1-\2-\3-\4-\5'), ...
FROM OldTable
вы имеете в виду RAWTOHEX? – tbone