Основы языка PL/SQL. Гаршина В.В - 21 стр.

UptoLike

Составители: 

21
Синтаксис PL/SQL позволяет определять тип переменной на основе
какой-либо уже заданной переменной, либо на основе типа столбца базы
данных. Для этих целей используется атрибут %TYPE. Перед атрибутом
%TYPE указывается либо имя переменной, либо таблицы и столбец базы
данных. На такие переменные не распространяется NOT NULL. Пример
использования атрибута %TYPE:
v_maximum NUMBER (7,2);
v_optimal v_maximum%TYPE;
Составные типы данных имеют внутренние компоненты и могут ис-
пользоваться повторно. В PL/SQL имеются следующие составные типы
данных:
– TABLE
– RECORD
– VARRAY.
Тип TABLE состоит из первичного ключа типа BINARY_INTEGER
и столбец скалярного типа. Синтаксис объявления типа на основе типа
TABLE:
TYPE type_name IS TABLE OF scalar_datatype
[NOT NULL] INDEX BY BINARY_INTEGER;
ident type_name;
где type_name – имя типа TABLE, scalar_datatype – тип данных для элемен-
тов таблицы PL/SQL, ident – имя идентификатора.
Тип RECORD (запись) позволяет рассматривать совокупность одной
или нескольких компонент скалярного типа, как логическую единицу. Син-
таксис:
TYPE type_name IS RECORD
(field_name1 field_type
[NOT NULL {:=|DEFAULT} expr],
(field_name2 field_type)
[NOT NULL {:=|DEFAULT} expr],...);
ident type_name;
     Синтаксис PL/SQL позволяет определять тип переменной на основе
какой-либо уже заданной переменной, либо на основе типа столбца базы
данных. Для этих целей используется атрибут %TYPE. Перед атрибутом
%TYPE указывается либо имя переменной, либо таблицы и столбец базы
данных. На такие переменные не распространяется NOT NULL. Пример
использования атрибута %TYPE:

     v_maximum NUMBER (7,2);
     v_optimal v_maximum%TYPE;

     Составные типы данных имеют внутренние компоненты и могут ис-
пользоваться повторно. В PL/SQL имеются следующие составные типы
данных:
     – TABLE
     – RECORD
     – VARRAY.

     Тип TABLE состоит из первичного ключа типа BINARY_INTEGER
и столбец скалярного типа. Синтаксис объявления типа на основе типа
TABLE:

     TYPE type_name IS TABLE OF scalar_datatype
     [NOT NULL] INDEX BY BINARY_INTEGER;

     ident type_name;

где type_name – имя типа TABLE, scalar_datatype – тип данных для элемен-
тов таблицы PL/SQL, ident – имя идентификатора.
      Тип RECORD (запись) позволяет рассматривать совокупность одной
или нескольких компонент скалярного типа, как логическую единицу. Син-
таксис:
      TYPE type_name IS RECORD
        (field_name1 field_type
      [NOT NULL {:=|DEFAULT} expr],
      (field_name2 field_type)
      [NOT NULL {:=|DEFAULT} expr],...);

     ident type_name;

                                     21