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

我使用
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"));
}

最佳答案 您可能需要使用
CAST表达式:

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

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

点赞