PLSQL中常用的自定义类型就两种: 记录类型、PLSQL内存表类型(根据表中的数据字段的简单和复杂 程度又可分别实现类似于简单数组和记录数组的功能)
记录类型:record
type 类型名字 is record(
变量1 变量类型1,
变量2 变量类型2
);
取个名 类型名字
例:TYPE emp_record_type IS RECORD (
last_name VARCHAR2(25),
job_id VARCHAR2(10),
salary NUMBER(8,2));
emp_record emp_record_type;
这里的变量类型如果要可以参照多个表里面的字段,即变量类型1和变量类型2可以是两张表的
如果是参照同一张表的字段类型可以用%ROWTYPE
具体:emp_rec employees%ROWTYPE; 这样的话emp_rec 就具有employees表中所有的字段类型,若要执行insert into 操作的话,可以直接emp_rec.(employees字段)
PLSQL内存表:这种类型必须包括两部分:1、使用 BINARY_INTEGER 类型构成的索引主键; 2、另外一个简单类型 或者用户自定义类型的字段作为具体的数组元素。 这种类型可以自动增长,所以也类似于可变长数组。
例:TYPE ename_table_type IS TABLE OF
employees.last_name%TYPE INDEX BY BINARY_INTEGER;
ename_table ename_table_type;