2017-06-26 18 views
0

Windowsバッチ内でpsql.exeを使用してSQLクエリ(PostgreSQL用)を実行します。私は説明がつかないエラーが発生します。FROM句は、クエリ内で呼び出されていないテーブルには存在しません(下記参照)。バッチファイルでgeo_c3_0_3_moテーブルを検索すると、文字列が見つかりませんでした。Windowsバッチで実行されたSQLクエリ:テーブルがありません

この種の問題については何か考えてください。

enter image description here


EDIT:

私はコピー&ペーストpgAdminIII SQLクエリウィンドウにバッチファイルからクエリを、クエリが完全に実行され、エラー・メッセージが返されない場合。

サブクエリの1つを削除すると、エラーが消えたり、別のひどく書き込まれたテーブル名(例:missing FROM-clause for table "geoc__0_3_mo")が表示されます... 問題の原因は、文字!)。私にとっては、pgAdminIII SQLクエリウィンドウのように、バッチファイル内の複数の行にクエリを書くことはできません。解決策は、クエリを*.sqlファイル内に保持し、そのファイルをバッチファイルから呼び出すことです。

+1

テーブル "geo_c3_0_3_mo"には、FROM句のエントリがありません。 –

+0

位置から 'st_intersects(geo_c3_0_3')私はsyntaxisが間違って解釈されたと言うでしょう - スクリーンショットではなく、全体のクエリを入れてください –

+0

これは何度もチェックしましたが、' FROM'節がありません。クエリでは**は呼び出されません**(geo_c_3_0_3_moは - 何回かです) – wiltomap

答えて

0

クエリをバッチ内の一時ファイルに書き込み、psql -fで実行します。これは、コマンドラインの長さの問題を回避します。

+0

良いアイデア!しかし、文字列が一時ファイルに保存されているクエリに問題があります。私のクエリ "> temp.txt'は' temp.txt'に 'echo command activated'を書き込みます。文字列の長さを減らすと、それは正しく書き込まれます... – wiltomap

+0

@wiltomap '' 'をつけたファイルです。cmd.exeの行末エスケープ'^'を使って改行を書き込むこともできます。 –

関連する問題