将utf-8数据从访问(mdb)迁移到Oracle时的Scriptella编码问题

时间:2012-10-19 12:06:20

标签: java oracle ms-access character-encoding scriptella

我使用java和scriptella(etl框架)编写程序将数据从访问(mdb)移动到oracle,我将Access中的unicodeCompression更改为YES并且我通过添加utf-8数据来测试oracle编码SqlDeveloper没问题,现在当我运行程序将数据移动到Oracle时,我在记录中得到了questionMarks。

这是我的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>

这有什么问题?

我在ETL工具中看过输入/输出编码,例如jasperETL,在scriptella中有类似的东西吗?

Access data moved data in oracle , the last one(id=4) I filled in SqlDeveloper 在oracle中移动数据,最后一个(id = 4)我直接在SqlDeveloper

中填充它

1 个答案:

答案 0 :(得分:0)

尝试设置charSet属性introduced in Java 5

<connection id="dbInput"  url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=$MDB_FILE_NAME">
    charSet=UTF-8
</connection>