Использование предиката SQL LIKE в процессоре командной строки Db2 CLP - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь использовать CLP для вызова SQL-запроса, который использует LIKE:

SELECT NAME, PLACE, ANIMAL from ZOOTABLE where NAME like 'TIG%' or NAME like 'LIO%'; 

С DB2 CLP я запускаю согласно документации IBM:

db2 "SELECT NAME, PLACE, ANIMAL from ZOOTABLE where NAME like 'TIG\%' or NAME like 'LIO\%'";

Я получаю эту ошибку:

SQL0104N Неожиданный токен "%" был найден после "где NAME like TIG ". Ожидаемые токены могут включать:" ". SQLSTATE =

Любые предложения будут с благодарностью. Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Мне никогда не удавалось заставить это работать с Escape или чем-то еще. Однако мне удалось экспортировать вывод в файл CSV (Excel), и это дало мне вывод, который мне был нужен:

Вы вошли как пользователь DB2:

#! / Bin / bash -xv

set -vx

Хост экспорта = $ 1

sid экспорта = $ 2

db2 "ЭКСПОРТ В /tmp/db2select.csv DEL, ИЗМЕНЕННЫЙ НОЧАРДЕЛЕМ, ВЫБЕРИТЕ ИМЯ, МЕСТО, ЖИВОТНОЕ из ZOOTABLE"

sed -n '/ TIG / p' /tmp/db2select.csv | тройник /tmp/zooselect.csv

sed -n '/ LIO / p' /tmp/db2select.csv | tee -a /tmp/zooselect.csv

Это дало мне базовый вывод, который мне был нужен, и я мог затем манипулировать файлом Excel по мере необходимости

0 голосов
/ 27 апреля 2018

Почему бы просто не использовать синтаксис, оператор без какого-либо экранирования ...? Также удалите точку с запятой после закрывающей кавычки или поставьте ее перед заключительной кавычкой. Ошибка Db2 возникает из-за попытки побега (\%).

db2 "SELECT NAME, PLACE, ANIMAL from ZOOTABLE where NAME like 'TIG%' or BNAME like 'LIO%'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...