powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Работа с bytea
3 сообщений из 3, страница 1 из 1
Работа с bytea
    #39859757
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, помогите дилетанту.
Как правильно написать код данной хранимой процедуры:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE OR REPLACE PROCEDURE public.au_upd_сисадмин(_pk_Entity uuid, _hshLogin bytea, _hshPassword bytea) 
AS $$ 
  declare hshLogin_ bytea;
  declare hshPassword_ bytea; 
begin
  SELECT 
    hshLogin_ = hshLogin, 
    hshPassword_ = hshPassword 
  FROM tbl_Пользователи
  WHERE pk_Entity=_pk_Entity;
    
  IF ((hshLogin_ IS NULL) or (hshPassword_ IS NULL)) THEN 
    UPDATE tbl_Пользователи 
    SET hshLogin = _hshLogin, hshPassword=_hshPassword 
    WHERE pk_Entity=_pk_Entity;
end
$$ LANGUAGE sql
...
Рейтинг: 0 / 0
Работа с bytea
    #39860171
YuriyRusinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочтите наконец документацию. У Вас куча синтаксических ошибок
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or replace procedure <name_of_proc> (uuid, bytea, bytea) 
$BODY$
declare
    pk_entity alias for $1;
    hshL alias for $2;
    hshP alias for $2;
    <...>
begin
   < код процедуры >
end
$BODY$
language 'plpgsql';



И в последнем if нет ни ветки else, ни end if, что является грубой синтаксической ошибкой.
...
Рейтинг: 0 / 0
Работа с bytea
    #39860202
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyRusinov, синтаксических ошибок там конечно хватает, но (за исключением замены языка sql на plpgsql) вы показали исправление того что и так является корректным. alias for в declare такой же штатный способ давать читаемые имена параметрам функции, как и непосредственно в списке параметров.

Ну а к bytea тема не имеет никакого отношения. Вопрос скорее а зачем вообще хранимка и зачем два запроса в ней с race condition когда достаточно одного update с парой дополнительный условий на is null.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Работа с bytea
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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