Re: parse error in function

Поиск
Список
Период
Сортировка
От John Sidney-Woollett
Тема Re: parse error in function
Дата
Msg-id 2372.192.168.0.64.1074178701.squirrel@mercury.wardbrook.com
обсуждение исходный текст
Ответ на Re: parse error in function  (Uros <uros@sir-mag.com>)
Список pgsql-general
Apologies, I jumped the gun, amd misread your e-mail.

Isn't the syntax for "select into"...

select column1, column2 into variable1, variable2 from {yourtable} where
{some-condition};

Your statement would be:

SELECT id_user INTO tmp FROM user WHERE id_user = email;

See http://www.postgres.org/docs/current/interactive/sql-selectinto.html

Hope that helps.

John

Uros said:
> Hello John,
>
> This happen when i run my function and I check for this characters. I
have
> only spaces.
>
> Thursday, January 15, 2004, 3:29:35 PM, you wrote:
>
> JSW> Have you got any funny characters in your function definition (like
a
> TAB
> JSW> character) - I can't tell from your e-mail.
>
> JSW> I've seen problems before inserting function using psql when this
is
> the
> JSW> case.
>
> JSW> John Sidney-Woollett
>
> JSW> Uros said:
>>> Hello!
>>> I have problem with my function and I can find what's wrong.
>>> WARNING:  Error occurred while executing PL/pgSQL function
>>> fn_insert_entry_pending
>>> WARNING:  line 26 at SQL statement
>>> ERROR:  parser: parse error at or near "$1" at character 58
>>> create or replace function
>>> "fn_insert_entry_pending"(varchar,varchar,varchar,varchar,varchar,boolean,boolean,date,int,int)
returns integer as '
>>> declare
>>>     email       alias for $1;
>>>     caption     alias for $2;
>>>     description alias for $3;
>>>     keywords    alias for $4;
>>>     url         alias for $5;
>>>     is_company  alias for $6;
>>>     is_novelty  alias for $7;
>>>     expire      alias for $8;
>>>     category1   alias for $9;
>>>     category2   alias for $10;
>>>     tmp record;
>>>     id_entry_tmp integer;
>>> begin
>>>     SELECT INTO tmp id_user FROM "user" WHERE id_user = email; if not
found then
>>>         execute ''INSERT INTO "user" (id_user) VALUES ('' ||
>>> quote_literal(email) || '')'';
>>>     end if;
>>>     select into id_entry_tmp id_entry from "directory_entry" where
>>> url=url
>>> and is_novelty=is_novelty;
>>>     DELETE FROM "directory_entry_pending" WHERE "url"=url and
>>> "id_entry"=id_entry_tmp and "is_novelty"=is_novelty;
>>>     INSERT INTO "directory_entry_pending"
>>> (id_entry,id_user,caption,url,is_company,is_novelty,expire,hash)
VALUES (id_entry_tmp,$1,$2,$5,$6,$7,$8,''1'');
>>>     return 1;
>>> end;
>>> ' language 'plpgsql';
>>> ---------------------------(end of
>>> broadcast)---------------------------
>>> TIP 7: don't forget to increase your free space map settings
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>




В списке pgsql-general по дате отправления:

Предыдущее
От: Bill Moran
Дата:
Сообщение: Returning large select results from stored procedures
Следующее
От: Richard Huxton
Дата:
Сообщение: Re: fixed-length row