Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PERFORM и SELECT возвращеют разные екшэпшены / 2 сообщений из 2, страница 1 из 1
28.12.2021, 01:16
    #40123490
user_t0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PERFORM и SELECT возвращеют разные екшэпшены
Доброй ночи.


Если делаю:
Код: sql
1.
SELECT * FROM dblink_connect



Такая ошибка:


ОШИБКА: could not establish connection
DETAIL: FATAL: password authentication failed for user "postgres"
********** Ошибка **********

ОШИБКА: could not establish connection
SQL-состояние: 08001
Подробности: FATAL: password authentication failed for user "postgres"



Если делаю с теми же параметрами:
Код: sql
1.
PERFORM dblink_connect



То ошибка уже другая, менее развернутая:

08003connection "my_conn" not available





А как сделать чтобы PERFORM выдавал такую же ошибку как SELECT?
...
Рейтинг: 0 / 0
28.12.2021, 07:25
    #40123502
grgdvo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PERFORM и SELECT возвращеют разные екшэпшены
user_t0,

Неплохо бы указывать версию PG, с которой вы работаете.
Также, если можете, приводите весь текст вашей хранимой процедуры или функции (ну или хотя бы ее значимую для ошибки часть).

Потому что на 13.5 ваша ошибка не воспроизводится. Очевидно где-то в другом месте ошибаетесь.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create schema test_perform;
set search_path=test_perform;

create or replace function foo() returns integer
language plpgsql
as
$body$
begin
perform public.dblink_connect('my_conn', 'host=localhost dbname=postgres user=xyz password=secret');
return 0;
end;
$body$;



Код: plaintext
1.
2.
3.
4.
test=> select foo();
ОШИБКА:  could not establish connection
ПОДРОБНОСТИ:  ВАЖНО:  роль "xyz" не существует
КОНТЕКСТ:  SQL-оператор: "SELECT public.dblink_connect('my_conn', 'host=localhost dbname=postgres user=xyz password=secret')"
функция PL/pgSQL foo(), строка 3, оператор PERFORM

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or replace function foo() returns integer
language plpgsql
as
$body$
begin
select public.dblink_connect('my_conn', 'host=localhost dbname=postgres user=xyz password=secret');
return 0;
end;
$body$;



Код: plaintext
1.
2.
3.
4.
test=> select foo();
ОШИБКА:  could not establish connection
ПОДРОБНОСТИ:  ВАЖНО:  роль "xyz" не существует
КОНТЕКСТ:  SQL-оператор: "select public.dblink_connect('my_conn', 'host=localhost dbname=postgres user=xyz password=secret')"
функция PL/pgSQL foo(), строка 3, оператор SQL-оператор
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PERFORM и SELECT возвращеют разные екшэпшены / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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