В начало

 

 

5. ПЕРЕМЕННЫЕ И КОНСТАНТЫ

 

5.1. Объявление переменных

В блоках PL/SQL взаимодействие с базой данных осуществляется посредством переменных. Переменной может быть присвоена определенная информация, хранимая в базе данных, либо содержимое переменной может быть внесено в базу данных. Переменные могут изменяться непосредственно командами PL/SQL. Переменные определяются в разделе объявлений блока. Каждая переменная имеет конкретный тип, описывающий тип хранящейся в ней информации. Синтаксис объявления переменных:

имя_переменной тип [CONSTANT] [NOT NULL] [:= значение},

где имя_переменной — это имя переменной, тип — это тип переменной, а значение — начальное значение переменной.

Пример:

var1 VARCHAR2(50);

var2 NUMBER := 45;

var3 BINARY_INTEGER := 0;

В качестве имени переменной может быть использован любой разрешенный идентификатор PL/SQL. Если начальное значение переменной не задано (она не инициализирована), по умолчанию ей присваивается NULL. Если в объявлении указано NOT NULL, переменная должна быть инициализирована. Более того, переменной, которая описана как NOT NULL, запрещается присваивать NULL при ее объявлении, в выполняемом разделе или в разделе исключительных ситуаций блока.

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

В разделе объявлений в одной строке может быть описана только одна переменная.

Пример:

не корректное объявление переменных: v_FirstName, v_LastName VARCHAR2(20);

корректное объявление переменных: v_FirstName VARCHAR2(20);

v_LastName VARCHAR2(20);

В PL/SQL информация, содержащаяся в неинициализированной переменной, определяется — такой переменной присваивается NULL (пропущенное или неизвестное значение), поэтому вполне логично, что NULL по умолчанию присваивается любой неинициализированной переменной.

Начальное значение пере­менной можно присвоить в разделе объявлений программного блока, а также в любой момент исполнения программы символом присваивания — двоеточием, за которым следует знак равенства. Присвоить значение переменной в исполняемом разделе можно по-разному, например воспользовавшись значением, которое возвращает функция, вызванная для заполнения переменной, или текущим значением переменной в ариф­метическом уравнении, создающем новое значение.

Пример: