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;"
-
以下は選択クエリとの結果です。