Re: Parsing error
От | Thalis A. Kalfigopoulos |
---|---|
Тема | Re: Parsing error |
Дата | |
Msg-id | Pine.LNX.4.21.0107111252320.7168-100000@aluminum.cs.pitt.edu обсуждение исходный текст |
Ответ на | Parsing error (Nicolas Drapeau <ndrapeau@travelnet.ca>) |
Список | pgsql-general |
> ze_database=> CREATE TABLE my_table ( > ze_database(> p1 integer, > ze_database(> p2 integer, > ze_database(> p3 integer, > ze_database(> p4 integer); > CREATE > ze_database=> CREATE FUNCTION my_add(integer,integer,integer,integer) > ze_database-> RETURNS integer > ze_database-> AS 'INSERT INTO my_table VALUES ($1,$2,$3,$4); SELECT 1' > ze_database-> LANGUAGE 'sql'; > CREATE > ze_database=> CREATE FUNCTION my_update(integer,integer,integer,integer) > ze_database-> RETURNS integer > ze_database-> AS 'SELECT CASE WHEN UPDATE my_table SET p1= $1, p2= $2 WHERE > p3= $3 AND p4= $4 ~* \'UPDATE 0\' THEN my_add($1,$2,$3,$4) ELSE 1 END' > ze_database-> LANGUAGE 'sql'; > ERROR: parser: parse error at or near "my_table" > ze_database=> You are not allowed to have an SQL query in a CASE clause. The condition after WHEN must be an expression that returns aboolean. You would be better off using plpgsql for something like what you want. cheers, thalis
В списке pgsql-general по дате отправления: