0

最初の文字が指定された文字よりも大きいテーブルからすべての値を削除する関数をPostgreSQLで作成しようとしています。この例が機能しない理由を誰かに説明してもらえますか (「Z」またはその付近に構文エラーがあると書かれています)。

create function g3_brisi(varchar) returns void as 'delete from prezimena
where prezime between $1 and 'Z';' language sql;

私はPostgreSQLが初めてなので、どんな助けも本当に感謝しています。

4

1 に答える 1

1

The problem is the nested single quote inside the function source.

You should use "dollar quoting" for the function's body, that makes things a lot easier:

create function g3_brisi(varchar) 
   returns void as 
$body$
  delete from prezimena
  where prezime between $1 and 'Z';
$body$
language sql;

For more details see the manual: http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING

于 2013-06-15T21:30:15.660 に答える