Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / что не так в этой функции? / 9 сообщений из 9, страница 1 из 1
17.07.2006, 16:09
    #33858476
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
Вызываю так:
select public.TEST1(1);

дает ошибку:
ERROR: SELECT query has no destination for result data
HINT: If you want to discard the results, use PERFORM instead.
CONTEXT: PL/pgSQL function "test1" line 6 at SQL statement


CREATE OR REPLACE FUNCTION public.TEST1(uid integer)
returns varchar as
$body$
declare
uid ALIAS FOR $1;
uname VARCHAR;
begin

select uname=u_name from usernames where u_id=uid;
RETURN uname;
end;
$body$
LANGUAGE "plpgsql" VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
...
Рейтинг: 0 / 0
17.07.2006, 16:20
    #33858528
ZemA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE OR REPLACE FUNCTION public.TEST1(uid integer)
  returns varchar as
$body$
declare
  uid ALIAS FOR $ 1 ;
  uname VARCHAR;
begin
  uname := select u_name from usernames where u_id=uid;
  RETURN uname;
end;
$body$
LANGUAGE "plpgsql" VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

зы: пользуйся тегом [src]
...
Рейтинг: 0 / 0
17.07.2006, 16:23
    #33858541
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
ZemA
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE OR REPLACE FUNCTION public.TEST1(uid integer)
  returns varchar as
$body$
declare
  uid ALIAS FOR $ 1 ;
  uname VARCHAR;
begin
  uname := select u_name from usernames where u_id=uid;
  RETURN uname;
end;
$body$
LANGUAGE "plpgsql" VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

зы: пользуйся тегом [src]

спасибо, но эта даже не компилируется

ERROR: syntax error at or near "select" at character 9
QUERY: SELECT select u_name from usernames where u_id= $1
CONTEXT: SQL statement in PL/PgSQL function "test1" near line 5
...
Рейтинг: 0 / 0
17.07.2006, 16:54
    #33858673
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
[src]
...
select u_name into uname from usernames where u_id=uid;
RETURN uname;
...
[src]
...
Рейтинг: 0 / 0
17.07.2006, 16:55
    #33858678
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
Извиняюсь, вот так лучше:

Код: plaintext
1.
2.
3.
4.
  ...
  select u_name into uname from usernames where u_id=uid;
  RETURN uname;
  ...
...
Рейтинг: 0 / 0
17.07.2006, 16:57
    #33858685
st_serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
если по докам (36.6.2.), то по идее должно быть так
Код: plaintext
1.
select u_name into uname from usernames where u_id=uid;
либо
Код: plaintext
1.
select into uname u_name from usernames where u_id=uid;
...
Рейтинг: 0 / 0
17.07.2006, 16:58
    #33858690
st_serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
не успел :)
...
Рейтинг: 0 / 0
17.07.2006, 18:27
    #33858958
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
uname := (select u_name from usernames where u_id=uid);

кажется еще и так можно.
...
Рейтинг: 0 / 0
18.07.2006, 10:26
    #33859827
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так в этой функции?
спасибо, так все прошло.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / что не так в этой функции? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]