此问题可能是由于ODI默认连接类中未正确配置字符集引起的。可以在ODI Studio中对连接进行以下更改:
以下是示例代码:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;
public class ODIUnicodeExample {
public static void main(String[] args) {
//Database connection variables
String url = "jdbc:oracle:thin:@database_ip:port:database_instance";
String user = "database_username";
String password = "database_password";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//Register JDBC driver
Class.forName("oracle.jdbc.driver.OracleDriver");
//Open a connection
conn = DriverManager.getConnection(url, user, password);
//Execute query and print results
stmt = conn.createStatement();
String sql = "SELECT unicode_column FROM my_table";
rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getString("unicode_column"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}