在Db2命令行处理器CLP中使用SQL LIKE谓词

时间:2018-04-27 05:20:16

标签: sql db2

我正在尝试使用CLP来调用使用LIKE的SQL查询:

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之后   TIG&#34 ;.预期的代币可能包括:""。 SQLSTATE =

任何建议都将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

为什么不使用语法,没有任何转义的语句......?同时在结束报价后删除分号或将其放在结束报价之前。 Db2错误来自尝试转义(\%)。

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

答案 1 :(得分:0)

我无法使用Escape或其他任何东西来完成这项工作。但是,我确实设法将输出导出到CSV(Excel)文件,这给了我所需的输出:

以DB2用户身份登录:

#!/ bin / bash -xv

set -vx

export Host = $ 1

export sid = $ 2

db2“EXPORT TO /tmp/db2select.csv由NOCHARDEL修改的选择名称,地点,动物来自ZOOTABLE”

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

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

这给了我所需的基本输出,然后我可以根据需要操作Excel文件