2016-11-24 23 views
3

私はjavaを使用してIBM DB2データベースに接続していますが、データはデータベースにバイナリ形式で格納されていますので、値を取得するときはバイナリ形式または16進形式です。クエリレベルでutf-8のバイナリデータでこれをどのように変換できますか?データをフェッチするクエリレベルで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")); 
} 

答えて

0

あなたはあなたの選択から、以下のようなUTF8に結果を「キャスト」することができます。

String sql = "SELECT poMast.ORDNO, CAST(poMast.ORDNO AS VARCHAR(255) CCSID UNICODE) FROM AMFLIBL.POMAST AS poMast "; 

SRC:

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

は、あなたのニーズにVARCHARの長さを調整します。cast db2

+0

db2変換のために使用していません –

+0

@MilanSoni私は私の答えを更新しました。これが動作するかどうか確認してください。 –

0

あなたはおそらくCAST表現を使用する必要があります。この文字列は、データベースのコードページ(最近のUTF-8)にあり、フェッチ時にクライアント/アプリケーションのコードページに変換されます。

関連する問題