如何在查询级别将DB2二进制数据转换为UTF-8

时间:2016-11-24 15:27:25

标签: java database db2

我使用java连接到IBM DB2数据库,但数据以二进制格式存储在数据库中,因此当我获取任何值时,它将以二进制或十六进制格式存在。如何在查询级别的utf-8中将其转换为二进制数据。

获取数据的示例代码 -

String sql = "SELECT poMast.ORDNO  from AMFLIBL.POMAST AS poMast ";
Class.forName("com.ddtek.jdbc.db2.DB2Driver");
String url = "jdbc:datadirect:db2://hostname:port;DatabaseName=dbName;";
Connection con = DriverManager.getConnection(url, "username","password");
PreparedStatement preparedStatement = con.prepareStatement(sql);
ResultSet rs = preparedStatement.executeQuery();
System.out.println("ResultSet : \n");
System.out.println(" VNDNO");
while (rs.next())
{
   System.out.println(rs.getString("ORDNO"));
}

2 个答案:

答案 0 :(得分:1)

您可能需要使用CAST表达式:

SELECT CAST(poMast.ORDNO as VARCHAR(50))  from AMFLIBL.POMAST AS poMast

根据需要调整VARCHAR长度。该字符串位于数据库代码页中(目前通常为UTF-8),并在获取时转换为客户端/应用程序代码页。

答案 1 :(得分:0)

您可以将选择的结果“转换”为utf8,如下所示。

Send()

src:cast db2