Объявление переменных. Все переменные программного блока должны быть предварительно объявлены с ключевым словом DECLARE

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

ПРИМЕЧАНИЕ. Как будет показано в разделе «Передача управления», в одной из команд - цикле FOR - предусмотрена возможность инициализации управляющей переменной. Переменную цикла FOR не нужно заранее объявлять в секции DECLARE того блока, в котором находится цикл. Таким образом, переменные цикла FOR составляют единственное исключение из правила, согласно которому все переменные должны объявляться в начале соответствующего блока.

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

имя_переменной тип_данных [ := значение ];

Таким образом, объявление состоит из имени и типа переменной (следующих именно в этом порядке) и завершается символом точки с запятой (;).

В листинге 6.6 приведены объявления переменных типов integer, varchar (число в круглых скобках обозначает максимальную длину строки в символах) и float.

Листинг 6.6. Объявление переменных

CREATE FUNCTION identifier (arguments) RETURNS type AS '

DECLARE

-- Объявить числовую переменную типа integer.

subject_id integer;

-- Объявить строковую переменную переменной длины.

book_title varchar(10);

-- Объявить вещественную числовую переменную.

book price float;

BEGIN

команды;

END;

' LANGUAGE ‘plpgsql’ VOLATILE

Объявление переменной также может содержать дополнительные модификаторы. Ключевое слово CONSTANT указывает на то, что вместо переменной определяется константа. Пример определения константы рассматриваются в листинге 6.7 в этом разделе.

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

Ключевое слово DEFAULT определяет значение по умолчанию для переменной. Вместо него можно воспользоваться оператором (:=), эффект будет тем же.

Ниже приведен расширенный синтаксис объявления переменной:

имя_переменной [ CONSTANT ] тип_данных [ NOT NULL ]

[ { DEFAULT | := } значение ];

В листинге 6.7 приведены примеры объявлений целочисленной константы, равной 5, переменной со значением 10, которой не может быть присвоено псевдозначение NULL, и символьной переменной, содержащей символ 'а'.

Листинг 6.7. Объявления переменных

CREATE OR REPLACE FUNCTION books.example_function()

RETURNS text AS

$BODY$

DECLARE

-- Объявление целочисленной константы,

-- инициализированной значением 5.

five CONSTANT integer := 5;

-- Объявление целочисленной переменной,

-- инициализированной значением 10.

-- Переменной не может присваиваться NULL.

ten integer NOT NULL := 10;

-- Объявление символьной переменной,

-- инициализированной значением 'а'.

letter char DEFAULT 'а';

BEGIN

-- Функция возвращает символ и прекращает работу.

return letter;

END;

$BODY$

LANGUAGE 'plpgsql' VOLATILE








Дата добавления: 2015-02-03; просмотров: 822;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.