我使用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中有类似的东西吗?
在oracle中移动数据,最后一个(id = 4)我直接在SqlDeveloper
中填充它答案 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>