Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Можно ли декларировать переменные на основе данных из json?  [new]
romaro
Member

Откуда:
Сообщений: 173
Существует ли компактный способ объявления переменных путем их извлечения из переданного в функцию json? Вроде такого (этот метод приводит к синтаксической ошибке):

CREATE OR REPLACE FUNCTION public.is_exists_user(
	p_json	json
)
	RETURNS bool
	LANGUAGE plpgsql
AS $function$
DECLARE
	first_name		alias FOR p_json -> 'firstName';
	email 			alias FOR p_json -> 'email';
	mobile_phone	alias FOR p_json -> 'mobilePhone';
BEGIN
	RETURN true;
END;
$function$


Или в данном случае необходимо заготавливать пустые переменные и присваивать им значения уже при исполнении?
25 окт 21, 10:19    [22387560]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли декларировать переменные на основе данных из json?  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1391
romaro,

CREATE OR REPLACE FUNCTION public.is_exists_user(
	p_json json
)
	RETURNS text
	LANGUAGE plpgsql
AS $function$
DECLARE
	first_name text := p_json ->> 'firstName';
BEGIN
	RETURN first_name;
END;
$function$;
select is_exists_user('{"firstName": "me"}');
25 окт 21, 10:39    [22387567]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли декларировать переменные на основе данных из json?  [new]
romaro
Member

Откуда:
Сообщений: 173
Melkij,

спасибо! Я ведь правильно понимаю, что двойная стрелочка ->> отличается от одиночной -> тем, что она делает приведение строки из json к одному из типов данных Postgres?
26 окт 21, 15:21    [22388381]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли декларировать переменные на основе данных из json?  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1391
romaro,

-> json в результате
->> text в результате
26 окт 21, 15:45    [22388400]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить