Учебное пособие Для студентов университетов Специальностей «Информатика», «Прикладная математика»


Объявление  переменных  типа RECORD (записи)



Pdf көрінісі
бет138/177
Дата15.02.2022
өлшемі2,58 Mb.
#25567
түріУчебное пособие
1   ...   134   135   136   137   138   139   140   141   ...   177
Объявление  переменных  типа RECORD (записи). 
Составной  тип 
записи
  определяет  структуру,  содержащую  некоторое  количество  пере-
менных. Переменные могут быть любого типа, в том числе и  ранее оп-
ределенными записями. Ссылка на отдельные элементы этой структуры 
осуществляется с помощью точечной нотации. 
Тип записи должен быть определен до того, как будут объявлены пе-
ременные  этого  типа.  Для  явного  определения  нового  составного  типа 
данных используется следующий общий синтаксис: 
TYPE  тип_записи  IS  RECORD  
(поле1  тип1  [NOT  NULL] [{:= 
⎪ DEFAULT }  значение1], 
  поле2  тип2  [NOT  NULL] [{:= 
⎪ DEFAULT }  значение2], …); 
Для  явного  объявления  переменной-записи  этого  типа  необходимо 
указать  имя  переменной  и  имя  типа.  Допускается  неявное  определение 
переменных  типа  записи,  выполняемое  с  помощью  атрибута 
%ROWTYPE,  что  позволяет  определять  переменные-записи,  структура 
которых идентична  структуре  записи  указанной  таблицы  или  структуре 
ранее определенной переменной-записи. 
Рассмотрим переменную-запись, объявляемую явно: 
DECLARE 
 
154


 
TYPE  BOOK  IS  RECORD   --вводится тип записи – BOOK 

AUTHOR   VARCHAR2(15),    --фамилия автора 
TITLE        VARCHAR2(25),     --название книги 
PRICE        NUMBER(6)             --цена 
); 
BOOK_FAN      BOOK;            --явное объявление  
BOOK_ROM     BOOK;            --явное объявление 
BOOK_POEM   BOOK_FAN%ROWTYPE;  --неявное объявление 
Присваивание  значений  элементам,  входящим  в  запись,  необходимо 
выполнять поэлементно, используя точечную нотацию:  
BOOK_FAN.PRICE :=16000; 
Для присвоения значений сразу всем полям записи или нескольким из 
них  можно  воспользоваться  однострочным  оператором SELECT либо 
оператором выборки очередной строки из открытого курсора FETCH. 
Возможно  присвоение  значений  одной  переменной-записи  другой 
при условии, что они одного типа:  
BOOK_FAN := BOOK_ROM;  
Однако  следует  иметь  в  виду,  что  переменная-запись,  тип  которой 
определен явно, и переменная-запись, тип которой определяется с помо-
щью атрибута  %ROWTYPE, всегда несовместимы.  
Не допускается сравнение переменных-записей. 
Ошибочной  будет  попытка  передать  в  качестве  значений  в  команде 
INSERT  запись целиком. Значения записи должны передаваться поэле-
ментно: 
INSERT   INTO  TEMP VALUES (BOOK_FAN.AUTHOR,  
BOOK_FAN.TITLE, BOOK_FAN.PRICE); 


Достарыңызбен бөлісу:
1   ...   134   135   136   137   138   139   140   141   ...   177




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет