WEB开发网
开发学院数据库Oracle PL/SQL定义部分之二复合数据类型 阅读

PL/SQL定义部分之二复合数据类型

 2009-03-12 13:10:50 来源:WEB开发网   
核心提示: 示例2:DECLARETYPE MyTableType IS TABLE OF NUMBERNOT NULL INDEX BY VARCHAR2(20);my MyTableType;BEGIN my('China'):=1; my('Japan'):=2;

示例2:

DECLARE
TYPE MyTableType IS TABLE OF NUMBER
NOT NULL INDEX BY VARCHAR2(20);
my MyTableType;
BEGIN
  my('China'):=1;
  my('Japan'):=2;
  my('USA'):=3;
  DBMS_OUTPUT.PUT_LINE(my.first);
  DBMS_OUTPUT.PUT_LINE(my.last);
  DBMS_OUTPUT.PUT_LINE(my('China'));
 DBMS_OUTPUT.PUT_LINE(my(my.last));
END;

三、嵌套表

要使用嵌套表,首先要创建嵌套表类型,其次声明嵌套表类型变量,然后初始化嵌套表变量,最后引用嵌套表变量元素值。

1、定义嵌套表类型  

TYPE MyNestedTableType IS TABLE OF ElementType [NOT NULL];

其中:

MyNestedTableType是嵌套表类型的名称。ElementType是嵌套表元素的类型,它是可以除了REF CURSOR类型之外的任何PL/SQL类型,但是对于全局嵌套表(CREATE TYPE创建)来说,以下类型也是不允许的:BINARY_INTEGER  PLS_INTEGER  BOOLEAN  LONG  LONG RAW  NATURAL   NATURALN POSITIVE  POSITIVEN  REF CURSOR  SIGNTYPE  STRING 。NOT NULL表示元素值不能为NULL。

示例:

DECLARE
--定义记录
TYPE DeptRecord IS RECORD(
  no    NUMBER(2),
  name  VARCHAR2(14),
  city  scott.dept.loc%TYPE
);
--定义游标
CURSOR  DeptCursor IS SELECT * FROM DEPT;
--定义嵌套表元素类型时使用%TYPE
TYPE DNameList IS TABLE OF dept.dname%TYPE;
--定义嵌套表元素类型时使用表的%ROWTYPE
TYPE DeptList1  IS TABLE OF DEPT%ROWTYPE;
--定义嵌套表元素类型时使用游标的%ROWTYPE
TYPE DeptList2  IS TABLE OF DeptCursor%ROWTYPE;
--定义嵌套表元素类型时使用记录类型
TYPE DeptList3  IS TABLE OF DeptRecord ;
--在SQL语句中定义嵌套表类型
CREATE TYPE PhoneList IS TABLE OF VARCHAR2(10);

上一页  1 2 3 4 5 6  下一页

Tags:PL SQL 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接