2016-11-24 1 views
4

В моем приложении у меня есть база данных IBM DB2 в качестве хранилища, а уровень моей службы данных реализован с использованием Node.js. Я установил соединение JDBC с базой данных IBM DB2 iSeries подходом DataDirect, данным Progress, используя db2.jar. Когда я выполняю любой запрос выбора, результат, возвращаемый из БД, является шестнадцатеричным значением, которое не является правильным, что я хочу. Чтобы решить эту проблему, у меня есть возможность использовать функцию CAST на уровне запроса с каждым столбцом, но это не так эффективно, как я должен применять этот CAST в каждом столбце, поэтому я пытаюсь получить общее решение на уровне соединения, чтобы Мне не нужно применять этот приведение в каждом столбце так же, как «translate binary = true» в JTOpen.Как преобразовать шестнадцатеричные данные IBM DB2 в надлежащем формате (CCSID 37) на уровне соединения без использования функции CAST

Ниже приведены результаты с запросом на выборку -

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

может попытаться изменить ваш connexionstring как этот

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" 
Смежные вопросы