批处理文件:将%字符转义为PostgreSQL查询

时间:2016-02-29 13:12:25

标签: sql postgresql batch-file escaping

我需要在我传递到Windows批处理文件的SQL查询中使用%字符。我的问题是没有考虑这个角色。

towns=(12232, 12233)

for %%a in %towns% do (

    "C:\Program Files\PostgreSQL\9.4\bin\pgsql2shp.exe" -h localhost -u thomas -P  password thomas_db "SELECT * FROM schema.table WHERE code like '%%a%'"

)

我收到以下错误:

  

C:\ batch><" C:\ Program Files \ PostgreSQL \ 9.4 \ bin \ pgsql2shp.exe" -h localhost -u thomas -P password thomas_db" SELECT * FROM schema.table WHERE code like' 12232'">   初始化...   错误:无法确定表元数据

LIKE '%%a%'被解释为LIKE '12232',应该为LIKE '12232%'

1 个答案:

答案 0 :(得分:1)

一个百分之二的百分比逃脱了一倍,所以加倍:

... WHERE code like '%%a%%%'"