3

ドキュメントがここで説明しているように、OPEN 時に引数を受け入れるカーソルを宣言する必要があります。

私のクエリは次のようになります。

DECLARE cur CURSOR (argName 文字はさまざま) FOR SELECT * FROM "TableName" WHERE "SomeColumn" = argName;

これを行うと、素敵なエラーが発生します。

ERROR:  syntax error at or near "("
LINE 1: DECLARE cur CURSOR (argName character varying) FOR SELECT * FROM...
                           ^

PostgreSQL はこの形式のカーソル宣言を受け入れていないようです。これを解決する方法はありますか?回避策はありますか?

ありがとう

4

3 に答える 3

3

その構文は、plpgsql 関数内でのみ有効です。

http://www.postgresql.org/docs/current/static/plpgsql-cursors.html

于 2013-07-23T11:46:39.140 に答える
2

次のようなものを試してください:

DECLARE 
  argName varchar;
  cur CURSOR FOR SELECT * FROM "TableName" WHERE "SomeColumn" = argName;

このカーソルargNameを使用すると、クエリに取り込まれます。OPEN

于 2013-07-23T11:46:34.920 に答える