Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создать функцию в pgsql / 7 сообщений из 7, страница 1 из 1
28.06.2005, 13:49
    #33138321
пепси
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию в pgsql
Не могу создать функцию из-под pgsql, ввожу

Код: plaintext
1.
2.
CREATE OR REPLACE FUNCTION "public"."function" (integer) RETURNS text AS
declare
param alias for $ 1 ;

А в ответ: ERROR: syntax error at or near "declare"

Не могу понять что я делаю не так???

Спасибо
...
Рейтинг: 0 / 0
28.06.2005, 14:04
    #33138373
пепси
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию в pgsql
прошу прощения, речь идёт не о pgsql а о PSQL
Запутался
...
Рейтинг: 0 / 0
28.06.2005, 14:21
    #33138432
Meta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию в pgsql
пепсиНе могу создать функцию из-под pgsql, ввожу

Код: plaintext
1.
2.
CREATE OR REPLACE FUNCTION "public"."function" (integer) RETURNS text AS
declare
param alias for $ 1 ;

А в ответ: ERROR: syntax error at or near "declare"

Не могу понять что я делаю не так???

Спасибо

Текст функции необходимо "брать" в кавычки или в доллары (в 8.х версии)...


Код: plaintext
1.
2.
CREATE OR REPLACE FUNCTION "public"."function" (integer) RETURNS text AS '
declare
param alias for $ 1 ;
...
Рейтинг: 0 / 0
28.06.2005, 16:50
    #33138836
пепси
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию в pgsql
У меня 7.4 и доллары не прокатывают
Одиночные кавычки работают, но у меня в тексте функции есть одиночные кавычки в селектах.
Код: plaintext
select id from names where name='test'

Как тут быть?
...
Рейтинг: 0 / 0
28.06.2005, 16:59
    #33138862
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию в pgsql
http://www.postgresql.org/docs/7.4/interactive/plpgsql-development-tips.html
...
Рейтинг: 0 / 0
29.06.2005, 11:19
    #33139834
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию в pgsql
Вкратце - в том месте функции, где встречаются кавычки, нужно ставить две одинарные кавычки подряд:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create function f1(text) returns void as
'
declare
  ...
begin
  ...
  select id from names where name=''test'' -- две одинарные кавычки, не одна двойная
  ...
  return;
end;
'
language 'plpgsql';
...
Рейтинг: 0 / 0
30.06.2005, 11:31
    #33142148
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию в pgsql
Кувалдин РоманВкратце - в том месте функции, где встречаются кавычки, нужно ставить две одинарные кавычки подряд:


Это не единственный вариант.
Еще можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE OR REPLACE FUNCTION btrim(bytea, int4)
  RETURNS bytea AS
$BODY$
   DECLARE
       ln int;
       res bytea;
   BEGIN
       ln := length(bdata);
       if ln < blen then
          res := bdata;
          for i in ln .. blen -  1 
          loop
               res := res || '\\000';

  ...

  END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION btrim(bytea, int4) OWNER TO postgres;
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создать функцию в pgsql / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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