Введение в СУБД "Oracle". Космачев В.М - 50 стр.

UptoLike

ГУАП МЦИТ
Введение в «ORACLE»
Под ред. проф. В.М.Космачёва
50
Пример 2.3.7
TYPE emp_record_type IS RECORD ( ename varchar2(10), job varchar2(9), sal number(7,2) );
emp_record emp_record_type;
Метод %ROWTYPE
Предопределенный метод %
ROWTYPE может применяться как ко всей таблице, так и ее отдельным полям (атрибутам).
При использовании этого метода с таблицей или представлением объявляется запись той же структуры, что и
таблица или представление. При этом поля записи имеют имена и типы полей таблицы или представления.
Пример 2.3.8
DECLARE Emp_record emp%ROWTYPE;
После такого описания запись EMP_RECORD имеет те же поля, что и запись ЕМР.
Использование %ROWTYPE имеет ряд преимуществ:
число и тип колонок базы данных может быть неизвестен;
число типов колонок базы данных может меняться;
этот атрибут полезен, когда колонка определяется с помощью SELECT утверждения.
Если метод %
ROWTYPE применяется к отдельными полям (атрибутам), происходит объявление переменной того же
типа, что и столбец в таблице, например:
dept_record dept%ROWTYPE
Оператором DECLARE можно создать PL/SQL таблицу следующим образом:
TYPE type_name IS TABLE OF
{column_type|variable%TYPE
|table.column%TYPE}[not null]
[INDEX BY binary_integer];
identifier type_name;
Пример 2.3.9
TYPE ename_table_type IS TABLE OF emp.ename%type
INDEX BY binary_integer;
ename_table ename_table_type;
Пример 2.3.10
DECLARE
TYPE ename_table_type IS TABLE OF emp.e name%TYPE
INDEX BY binary_integer;
TYPE hiredate_table_type IS TABLE OF date
INDEX BY binary_integer;
ename_table ename_table_type;
hiredate_table hiredate_table_type;
BEGIN
ename_table(l) := 'Cameron' ;
hiredate_table(8):=SYSDATE+7;
END;
Следующие функции облегчают работу с таблицами: