Как выполнить связывание переменных на основе SQL в DB2 DB2 ZOS - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь выполнить один SQL, который состоит из переменных связывания. Работает нормально с ORACLE DB, но не с DB2

Вот пример SQL: (UPPER / UCASE это может быть что угодно)

SELECT Col1 FROM tab1 WHERE Col1 = 'abc' AND (UPPER(Col1) LIKE (UPPER(:1) || '%' ESCAPE '\') ORDER BY 1

Ошибка выглядит следующим образом:

db2 => SELECT Col1 FROM tab1 WHERE Col1 = 'abc' AND (UPPER(Col1) LIKE (UPPE
R(:1) || '%' ESCAPE '\') ORDER BY 1
SQL0104N  An unexpected token "1" was found following "".  Expected tokens mayinclude:  "<IDENTIFIER>".  SQLSTATE=42601

Я не уверен, в чем здесь проблема. Его не запрашивает входное значение привязки. В Oracle DB все работает нормально.

В DB2 я использовал командную строку для выполнения запроса. Для Oracle я использовал ORACLE SQL developer.

1 Ответ

1 голос
/ 29 мая 2019

Вы используете интерактивный CLP для Db2 в Microsoft Windows при подключении к удаленной базе данных Db2-for-Z / OS.

Этот интерфейс CLP не имеет никаких функций для запроса значений переменных хостав динамическом SQL.Вот почему вы получаете сообщение об ошибке.

Вы можете использовать альтернативный интерфейс (например, IBM Data Studio или многие другие инструменты интерфейса базы данных на основе Java) или продолжить использовать Oracle-SQL-Developer длядоступ к Db2 для Z / OS.

Вы можете настроить Oracle SQL Developer на использование драйвера jbbc типа 4 Db2 (db2jcc4.jar) вместе с файлом лицензии для Db2 для Z / OS ('db2jcc_license_cisuz).баночка ').Вам нужно будет получить файл лицензии Db2 от своего администратора базы данных на мэйнфреймах или от Passport-Advantage, или в качестве альтернативы подключиться через сервер шлюза Db2-connect (в этом случае вам не понадобится отдельный файл лицензии на рабочей станции, на которой работает Oracle-SQL-Разработчик).

Однако степень, в которой каждый такой инструмент понимает Db2-for-Z / OS, варьируется, поэтому, если у вас возникают проблемы, которые вы не можете легко обойти, вместо этого используйте бесплатную IBM Data Studio, которая работает сDb2-for-Z / OS, Db2-for-i и Db2 для LUW.

Настройка SQL-Developer для доступа к Db2 широко описана, в том числе на этом веб-сайте, а также Oracle .Так что сделайте свое исследование, это не программирование, а конфигурация.Stackoverflow предназначен для вопросов программирования.

...