对此可能有一个非常简单的解决方案,但我已经尝试了我能想到的每一个变体,但仍然无法摆脱错误:
我是通过shell脚本运行的:
su - myid -c 'db2 -v "EXPORT TO '/tmp/file.out' OF DEL MODIFIED BY COLDEL| select A, B, C FROM mytable where C = '' and ( F = 1 or F = 2 or F = 3 or F = 4 ) "'
这是我得到的错误:
SQL0104N An unexpected token "= and ( status" was found following "mytable
where C". Expected tokens may include: "<space>". SQLSTATE=42601
非常感谢任何帮助
答案 0 :(得分:1)
如果您使用bash
:
su - myid -c $'db2 -v "EXPORT TO \'/tmp/file.out\'...'
您可以使用\'
引用单引号。在POSIX shell中,您必须使用双引号,并引用嵌入的双引号:
su - myid -c "db2 -v \"EXPORT TO '/tmp/file.out' ..."
答案 1 :(得分:0)
我明白了。这是我更新的查询:
su - myid -c 'db2 -v "EXPORT TO '/tmp/file.out' OF DEL MODIFIED BY COLDEL| select A, B, C FROM mytable where C = '\'''\'' and ( F = 1 or F = 2 or F = 3 or F = 4 ) "'
我不得不将单个'替换为'\'''\''&lt; ---这些都是单引号