Получение значения NULL в столбце ТЕКСТ хранимой процедуры - PullRequest
0 голосов
/ 17 апреля 2019

Ниже Query, я использую, чтобы получить определение SP, но в TEXT column я получаю как NULL Значение в IBM DATA Studio, но я могу CALL SP.

SELECT PROCNAME, TEXT FROM SYSCAT.PROCEDURES WHERE PROCNAME LIKE '%USP_ABC%'

Пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Вы подтвердили, что syscat.procedures.language является SQL, и что ваш инструмент запросов может отображать substr () текста.

Обходной путь зависит от длины (текста) интересующей строки:

SELECT PROCNAME, substr(TEXT,1, 1024) FROM SYSCAT.PROCEDURES WHERE PROCNAME LIKE '%USP_ABC%'

Возможно, вам придется настроить длину экстракта substr в зависимости от длины текста и вашей конфигурации.,Например, substr (TEXT, 1, 2048) или более высокое значение длины, если это необходимо вашему инструменту запросов.

Вы можете найти длину текстового столбца с помощью LENGTH (TEXT) дляинтересующий вас ряд.

Вы также можете ЗАГРУЗИТЬ CLOB на char или varchar до длины, которая соответствует их ограничениям и любым ограничениям инструмента запросов, которые у вас есть.Другим вариантом является использование другого инструмента запросов, который может работать с CLOB.

0 голосов
/ 29 апреля 2019

Используете ли вы последнюю версию Data Studio с последним исправлением?Звучит так, как будто вы можете иметь недопустимый символ UTF-8 в вашем SP, или когда вы используете SUBSTR и SUBSTRING, вы разбиваете многобайтовый символ на два.

Вы можете попробовать установить

-Ddb2.jcc.charsetDecoderEncoder=3 

в вашем eclipse.ini, чтобы заставить Java использовать символ замены вместо замены недопустимой строки на nul

См. Эту техническую заметку

https://www -01.ibm.com/support/docview.wss?uid=swg21684365

В противном случае, поднять это с помощью IBM Suppport

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...