2016-10-13 5 views
1

BLOB列を持つOracle表があります。私はPostgresと互換性のある挿入スクリプトを生成する必要があります。blobの値を持つオラクル表からpostgresqlの挿入スクリプトを生成する方法

私はJavaで以下のロジックを試してみましたが、それは動作していない:

String value = null; 
switch (dataType) { 
    case Types.BLOB: 
     Blob blob = rs.getBlob(colName); 
     if ((blob != null) && (!rs.wasNull())) { 
     int blobLength = (int) blob.length(); 
     byte[] blobAsBytes = blob.getBytes(1, blobLength); 
     value = blobAsBytes.toString();     
     break; 
    } 
return value; 

答えて

0

あなたは、例えば、bytea列に対してthe supported formatsのいずれかにbyte[]配列を変換する必要があります私は::byteaキャストが必要な場合は、完全にわからない

StringBuilder result = new StringBuilder(blobAsBytes.length * 2 + 12); 
result.append("E'\\\\x"); 
for (int i = 0; i < blobAsBytes.length; i++) 
{ 
    int c = (blobAsBytes[i] < 0 ? 256 + blobAsBytes[i] : blobAsBytes[i]); 
    String hexString = Integer.toHexString(value); 
    if (c < 16) result.append('0'); 
    result.append(hexString); 
} 
result.append("'::bytea'); 
value = result.toString(); 

、それは傷つけることはありません。E'\\xDEADBEEF'::bytea

ような何か。

関連する問題