powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите создать функцию в dblimk
9 сообщений из 9, страница 1 из 1
Помогите создать функцию в dblimk
    #39637608
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую,

так жалуется на синтакис рядом с символами $

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
...
PERFORM  dblink_exec(conn_str,
'

CREATE OR REPLACE FUNCTION myF()
 RETURNS TABLE (
  f1 int
 ) AS
$body$
BEGIN

...

END;
$body$
LANGUAGE ''plpgsql'';

'::text);

...



И функция (в которой этот dblink) не создается.








Если $ зэкранировать c помощью /

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
...
PERFORM  dblink_exec(conn_str,
'

CREATE OR REPLACE FUNCTION myF()
 RETURNS TABLE (
  f1 int
 ) AS
/$body/$
BEGIN

...

END;
/$body/$
LANGUAGE ''plpgsql'';

'::text);

...



И функция (в которой этот dblink пытается создаться) создается, но при попытке создания dblink - ошибка на синтаксис символ /






Скажите, как можно создать функцию в dblink ?

версия 8.4.
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39637622
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного непонятно объяснил.

Т.к. версия 8.4 do там нет.

Приходится вместо do создавать функцию.

Внутри этой функции dblink, внутри которого создание функции на удаленном сервере.





функция
|
дблинк, создающий функцию на другом сервере
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39637626
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УткъПриветствую,

так жалуется на синтакис рядом с символами $

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
...
PERFORM  dblink_exec(conn_str,
'

CREATE OR REPLACE FUNCTION myF()
 RETURNS TABLE (
  f1 int
 ) AS
$nobody$
BEGIN

...

END;
$nobody$
LANGUAGE ''plpgsql'';

'::text);

...



И функция (в которой этот dblink) не создается.
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39637630
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

так и есть.





уже несколько часов мучаюсь, уже и через переменную пробовал текс в дблинк вставлять - все равно не получается.



Подскажите как создать функцию в dblink ?

Прямым запросом она создается без ошибок.
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39637636
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъqwwq,

так и есть.





уже несколько часов мучаюсь, уже и через переменную пробовал текс в дблинк вставлять - все равно не получается.



Подскажите как создать функцию в dblink ?

Прямым запросом она создается без ошибок.так и создать.

или прекратите спамить обрывками кода, а давайте весь навернувшийся код с ошибкой.
в предыдущем сообщении обрывок решения. присмотритесь.
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39637741
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ps

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
do
$body$
begin
	raise notice 'body';
	do
	$nobody$
	begin
		raise notice 'nobody';
		do
		$somebody$
		begin
			raise notice 'somebody';
			do'begin raise notice $$qouted$$; end;';
		end;
		$somebody$;
	end;
	$nobody$;
end;
$body$;
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39637990
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwqps

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
do
$body$
begin
	raise notice 'body';
	do
	$nobody$
	begin
		raise notice 'nobody';
		do
		$somebody$
		begin
			raise notice 'somebody';
			do'begin raise notice $$qouted$$; end;';
		end;
		$somebody$;
	end;
	$nobody$;
end;
$body$;




В 8.4. отсутствует do
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39637993
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъqwwqps

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
do
$body$
begin
	raise notice 'body';
	do
	$nobody$
	begin
		raise notice 'nobody';
		do
		$somebody$
		begin
			raise notice 'somebody';
			do'begin raise notice $$qouted$$; end;';
		end;
		$somebody$;
	end;
	$nobody$;
end;
$body$;




В 8.4. отсутствует do

и ?

речь не про ду, а про парсер строк и доллар-квоутинг.
...
Рейтинг: 0 / 0
Помогите создать функцию в dblimk
    #39638001
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ,

а так понятней?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
create OR REPLACE function dobody() returns void AS 
$body$
begin
	raise notice 'body';
	create OR REPLACE function donobody() returns void AS 
	$nobody$
	begin
		raise notice 'nobody';
		create OR REPLACE function dosomebody() returns void AS 
		$somebody$
		begin
			raise notice 'somebody';
			create OR REPLACE function doquoted() returns void AS 'begin raise notice $$qouted$$;
				DROP FUNCTION donobody();
				DROP FUNCTION dosomebody();
				DROP FUNCTION dobody();
				DROP FUNCTION doquoted();
				end;' language plpgsql;
		end;
		$somebody$ language plpgsql;
	end;
	$nobody$ language plpgsql;
end;
$body$ language plpgsql;

select dobody();
select donobody();
select dosomebody();
select doquoted();
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите создать функцию в dblimk
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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