Именованные параметры Postgresql

PostgreSQL Generate База данных

Система управления PostgreSQL заставляет функции иметь именованные параметры, используя либо позиционную нотацию, либо именованную нотацию. Мы используем именованную нотацию в основном в ситуации, когда нам нужно передать большое количество параметров; используя это, связь между аргументами и параметрами функций становится более явной.

Хотя мы используем функции или процедуры в PostgreSQL, это позволяет нам передавать данные от вызова функции к процедурам, а также в то же время может получать данные обратно от функций. Это конкретное действие или функция выполняется только через параметры. Что касается обсуждения именованных параметров, мы должны объявить функции. Итак, теперь мы увидим, как функции работают с PostgreSQL.

Функции

Функции Postgresql также считаются процедурами. Они используются для выполнения операций, которые обычно могут занимать несколько запросов, если без использования функций мы хотим выполнить какую-либо логику. Но, создавая функции, мы можем выполнить любой сценарий в одной процедуре; для запуска операции требуется только вызов функции.

Синтаксис

CREATE [OR REPLACE] FUNCTION name_of_function (arguments)

RETURNS datatype AS $name_of_variable$

DECLARE

Any_declarartion;

BEGIN

< body_of_function >

[]

RETURN { name_of_variable | value }

END;

LANGUAGE plpgsql;

Описание :

  • Во-первых, мы упоминаем имя функции после использования слова «создать функцию».
  • Ключевое слово replace function используется, если вам нужно заменить уже существующую функцию.
  • Затем в скобках записываются параметры функции.
  • В конце пишем об используемом языке.

Есть два типа параметров, которые передаются через функцию.

  • Именованный параметр
  • Позиционный параметр

Именованный параметр

Если мы указываем параметры функции с помощью именованной нотации, то это именованный параметр, и за ним следует стрелка со значением параметра.

Позиционные параметры

Если мы напрямую используем значения позиционных параметров в качестве позиционной записи, то параметры должны быть перечислены в том же порядке, в котором они объявлены. Тогда как в случае именованной нотации указывать порядок не обязательно.

Реализация

Чтобы разработать концепцию именованного параметра, мы сначала создадим функцию или процедуру в PostgreSQL. Функция с именем ’l_u_case’ создается для работы со строками, отправленными ей через вызов функции. Он преобразует слова в верхний или нижний регистр. При создании функции главной особенностью являются ее параметры, содержащие переменные для получения данных. Итак, в этой функции мы создали две переменные текстового типа для хранения в ней данных. И третья переменная имеет логический тип. Хорошо известно, что значение переменной логического флага либо истинно, либо ложно. Таким образом, переменная верхнего регистра по умолчанию устанавливается как false. Это означает, что если пользователь использует вызов функции без упоминания имени регистра, либо верхнего, либо нижнего, то по умолчанию текст преобразуется в нижний регистр, если он также в верхнем регистре.

CREATE FUNCTION l_u_case(text, u Boolean DEFAULT false)

RETURNS text

AS

$$

SELECT CASE

WHEN $3 THEN UPPER ($1 || ‘ ‘ || $2)

ELSE LOWER ($1 || ‘ ‘ || $2)

END;

$$

LANGUAGE SQL IMMUTABLE STRICT;

Команда select используется здесь для выбора случая с использованием третьей переменной. Если присутствует третья переменная, которая является логической для верхнего регистра, то соедините обе строки, присутствующие в переменных «a» и «b». Каждая строка объединяется с пробелом между ними. Во втором варианте, если не указана логическая переменная, нижний регистр применяется тем же методом конкатенации. При выполнении отображается следующее сообщение.

Читайте также:  Базы данных NoSQL

Команда select используется здесь для выбора случая с

Теперь мы применим как именованный параметр как именованную запись, так и позиционную запись.

Позиционная запись

В этом примере вызов функции выполняется с непосредственно записанными значениями без использования какой-либо переменной в качестве аргумента для вызова функции. Вызов функции осуществляется с помощью оператора SELECT. Имя функции записывается вместе с параметрами.

>> SELECT l_u_case(‘Linux’‘Hint’true);

ыполнении заглавные буквы обеих строк объединяютс

При выполнении заглавные буквы обеих строк объединяются; это потому, что мы упомянули прописные буквы в качестве третьего параметра.

Принимая во внимание, что если вы удалите третий параметр, то результирующее значение будет в нижнем регистре.

>> select l_u_case(‘ Linux’‘Hint’);

Именованное обозначение

Здесь значения не присваиваются напрямую переменным в параметре, но те переменные, которые мы используем в функциях, также используются в вызове функции. При этом всем переменным будут присвоены значения. Логическому значению ’u’ также присваивается истинное значение.

>> SELECT l_u_case( a => ‘Linux’, b => ‘Hint’ , u => true);

Более того, выданный здесь оператор не является знаком равенства. При использовании простого знака равенства или любого другого знака вместо этого оператора образуется синтаксическая ошибка.

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

Помимо позиционной и именованной нотации, существует третья форма, «смешанная» нотация, которая содержит как именованную, так и позиционную нотацию. Давайте рассмотрим тот же пример, что и описанный выше. Мы будем напрямую упоминать строки в параметре при вызове функции, тогда как логической переменной ’u’ будет присвоено значение через именованный параметр.

>> select l_u_case(‘Linux’‘Hint’, u => true);

В результате нет никаких изменений.

Пример

Вот еще один пример таблицы с именем sample; мы используем оператор «создать» для создания функции. С помощью этой функции будут заменены два значения. Обе переменные введены в функцию. Значения внутри этих переменных, отправленные через параметр функции, будут заменены местами.

Select x, y into y, x;

Выполните команду, и вы увидите, что функция создана. Теперь мы выполним простой вызов функции, используя позиционную нотацию. Мы будем использовать только числа, принимаемые переменными, объявленными в функции.

>> select * from sample (531902);

При выполнении вы можете видеть, что значения обеих переменных меняются местами. Но это может сбить с толку, так как кто-то может не знать значение x и значение y во время вызова функции. Так что этот вопрос решается параметрами имени. Каждое значение присваивается переменной в качестве параметра во время вызова функции.

>> select * from swapper (=> 198, y => 457);

При выполнении вызова функции присваиваются оба значения. И при выполнении каждое значение заменяется местами.

Читайте также:  Нечеткий поиск PostgreSQL

Заключение

«Именованная процедура Postgres» описывает функцию, ее использование с параметрами, а также типы параметров, которые PostgreSQL позволяет использовать пользователю. Существует два основных обозначения параметров. Оба поясняются примерами, чтобы пользователь мог легко различать эти обозначения.

Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector