powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Почему вываливается исключение в дб линк ? :(((
2 сообщений из 2, страница 1 из 1
Почему вываливается исключение в дб линк ? :(((
    #39627991
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполняю так 5 раз:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
DO
$d$
BEGIN
PERFORM dblink_connect('mycon','host=10.10.10.10 dbname=mydb port=5432 user=postgres password=pwd'::text);
PERFORM dblink_exec('mycon','INSERT INTO my_table(f1) VALUES (1);'::text);
PERFORM dblink_disconnect('mycon'); 
END;	
$d$



выполняется 5 раз без ошибок и вставляет 5 строк.


Добавляю исключение:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DO
$d$
BEGIN
PERFORM dblink_connect('mycon','host=10.10.10.10 dbname=mydb port=5432 user=postgres password=pwd'::text);
PERFORM dblink_exec('mycon','INSERT INTO my_table(f1) VALUES (1);'::text);


EXCEPTION WHEN others THEN RAISE NOTICE 'ERROR % SQLSTATE: % %', clock_timestamp(),SQLSTATE,SQLERRM;


PERFORM dblink_disconnect('mycon'); 
END;	
$d$




Каждый второй раз выдает ошибку:

SQLSTATE: 42710 duplicate connection name

и в итоге вставляется только две строки.




Подскажите, как правильно отловить исключение в PERFORM dblink_exec ?
...
Рейтинг: 0 / 0
Почему вываливается исключение в дб линк ? :(((
    #39628001
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонВыполняю так 5 раз:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DO
$d$
BEGIN
if mycon =any(dblink_connection()) then
    ----ono uzhe est
else
     PERFORM dblink_connect('mycon','host=10.10.10.10 dbname=mydb port=5432 user=postgres password=pwd'::text);
end if;
PERFORM dblink_exec('mycon','INSERT INTO my_table(f1) VALUES (1);'::text);
PERFORM dblink_disconnect('mycon'); 
END;	
$d$



выполняется 5 раз без ошибок и вставляет 5 строк.


Добавляю исключение:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DO
$d$
BEGIN
PERFORM dblink_connect('mycon','host=10.10.10.10 dbname=mydb port=5432 user=postgres password=pwd'::text);
PERFORM dblink_exec('mycon','INSERT INTO my_table(f1) VALUES (1);'::text);


EXCEPTION WHEN others THEN RAISE NOTICE 'ERROR % SQLSTATE: % %', clock_timestamp(),SQLSTATE,SQLERRM;


PERFORM dblink_disconnect('mycon'); 
END;	
$d$




Каждый второй раз выдает ошибку:

SQLSTATE: 42710 duplicate connection name

и в итоге вставляется только две строки.




Подскажите, как правильно отловить исключение в PERFORM dblink_exec ?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Почему вываливается исключение в дб линк ? :(((
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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