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


Если делаю:
Код: 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
PERFORM и SELECT возвращеют разные екшэпшены
    #40123502
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PERFORM и SELECT возвращеют разные екшэпшены
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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