0

アクセス(mdb)からOracleにデータを移動するためにJavaとscriptella(etlフレームワーク)を使用してプログラムを作成し、各フィールドのAccessのunicodeCompressionをYESに変更し、SqlDeveloperにutf-8データを追加してOracleエンコーディングをテストしました。さて、プログラムを実行してデータを Oracle に移動すると、レコードに疑問符が表示されました。

ここに私のETLがあります

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE etl SYSTEM "http://scriptella.javaforge.com/dtd/etl.dtd">
<etl>
    <connection id="dbInput"  url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=$MDB_FILE_NAME" />
    <connection id="dbOutput"  url="jdbc:oracle:thin:@localhost:1521:xe" user="user"    password="pass" />
    <query connection-id="dbInput" >
        SELECT * FROM table1;
        <script connection-id="dbOutput"> 
            INSERT INTO some_table(COLUMN1, COLUMN2, COLUMN3) values (?field1,
            ?field2, ?field3);
        </script>
    </query>
</etl>

それの何がいけないの?

jasperETL などの ETL ツールで入力/出力エンコーディングを見てきましたが、 scriptella にそのようなものはありますか?

アクセスデータ oracle でデータを移動しました。最後のデータ (id=4) は SqlDeveloper に入力しました oracle でデータを移動しました。最後のデータ(id=4)は SqlDeveloper に直接入力しました

4

1 に答える 1

0

Java 5 で導入された charSet プロパティを設定してみてください。

<connection id="dbInput"  url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=$MDB_FILE_NAME">
    charSet=UTF-8
</connection>
于 2012-10-19T19:13:08.037 に答える