2016-11-24 1 views
4

私のアプリケーションではIBM DB2データベースをストレージとして使用しており、データサービス層はNode.jsを使用して実装されています。私は、IBM DB2 iSeriesデータベースへのJDBC接続を、db2.jarを使用してProgressが提供するDataDirectアプローチによって確立しました。 selectクエリを実行すると、DBから返される結果は16進数の値で、適切なものではありません。 この問題を解決するには、各列でクエリレベルでCAST関数を使用するオプションがありますが、これは効率的ではないため、各列にこのCASTを適用する必要があるため、接続レベルで汎用ソリューションを使用しようとしています。 JTOpenの "translate binary = true"のように、このキャストを各列に適用する必要はありません。すべてのヘルプは理解されるであろうCAST関数を使用せずに接続レベルでIBM DB2の16進数データを適切な形式(CCSID 37)に変換する方法

Without CAST function : 
Query = SELECT poMast.ORDNO from AMFLIBL.POMAST AS poMast WHERE poMast.ORDNO = 'P544901' 
Result in Hex format = D7F5F4F4F9F0F1 


With CAST function : 
Query = SELECT CAST(poMast.ORDNO CHAR(7) CCSID 37) AS ORDNO from AMFLIBL.POMAST AS poMast WHERE poMast.ORDNO IS NOT NULL 
Result in proper format = P544901 

Connection URL = "jdbc:datadirect:db2://hostname:port;DatabaseName=dbname;" 

-

以下は選択クエリとの結果です。

答えて

0

すると、この

Connection URL = "jdbc:datadirect:db2://hostname:port;DatabaseName=dbname;translate binary=true;ccsid=37" 

またはこの

Connection URL = "jdbc:db2://hostname:port;DatabaseName=dbname;translate binary=true;ccsid=37" 
などのようなあなたのconnexionstringを変更しようとすることができます
関連する問題