2016-09-04 14 views
1

私はポストグルの簡単な選択/削除クエリを実行可能なプレイブックで実行できます。しかし、私の質問に一重引用符が含まれていると、失敗します。一重引用符からどのようにエスケープできますか?ポストグルのクエリーで一重引用符をエスケープする方法

これは正常に動作:

command: psql -U dbuser dbname -c 'SELECT count(*) from table;' 

私はこれを実行したい:

command: psql -U dbuser dbname -c 'SELECT count(*) from table where time <= '01-sep-2016';' 

をしかし、これは私にエラーを与えています。

答えて

1

ないが、これに対処するための3つの方法は、通常はあります:

クエリの周り
  • 使用の二重引用

    command: psql -U dbuser dbname -c "SELECT count(*) from table where time <= '01-sep-2016';" 
    
  • 使用のバックスラッシュ:

    command: psql -U dbuser dbname -c 'SELECT count(*) from table where time <= \'01-sep-2016\';' 
    
  • 使用が続けて2回引用:

    command: psql -U dbuser dbname -c 'SELECT count(*) from table where time <= ''01-sep-2016'';' 
    
+0

ありがとうございます。二重引用符が機能しています。 – xmen81

0

あなただけのSQL内殻に二重引用符と単一引用符を使用することができます。それはansible脚本でワークアウトする方法を確認してください

$ psql -U dbuser dbname -c "SELECT count(*) from table where time <= '01-sep-2016';" 
# Here --------------------^-------------------------------------------------------^ 
+0

おかげで、それが働いています。 – xmen81

関連する問題