ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

OracleのRAW型をSQL ServerのVARBINARY型への移行方法

OracleのテーブルをMSSQLへ移行する

ORACLEがRAW型を持つデータがあり、SQL Serverへ移行する方法を探した結果
なんとか解決したので、メモ。

OracleのRAW型に対応するMS SQLServerの型はVARBINARY型

ORACLE

  CREATE TABLE rawdata
   (
      PASSWORD RAW(64)
   ); 

SQL SERVER

  CREATE TABLE bindata
   (
      PASSWORD VARBINARY(64)
   ); 

OracleのRAW型はRAWTOHEXでHEX値として出力

SELECT RAWTOHEX(PASSWORD) AS PASSWORD FROM rawdata;
-------
PASSWORD
88db98ae696277dd28b0d2bda6e3....
eaead8048dbe6d7f375bfd11d8947f....

SQLSERVERへは’0x'をつけてHEX値としてINSERTする

insert into bindata values (0x88db98ae696277dd28b0d2bda6e3....);

ORACLEのSELECT文でInsert文を作る

SELECT
 'insert into bindata values (0x' || RAWTOHEX(PASSWORD)  || ');'
FROM bindata

参考

RAW Data Type - Oracle to SQL Server Migration - SQLines Open Source Tools