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

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

 2009-03-12 13:10:50 来源:WEB开发网   
核心提示: 查询全部的列信息SELECT * FROM PERSON;在isql*plus中结果如下:通过嵌套表变量显示信息DECLAREpTable PHONE_TYPE;BEGINSELECT phone into pTable FROM person WHERE name='SCOTT&

查询全部的列信息

SELECT * FROM PERSON;

在isql*plus中结果如下:

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

通过嵌套表变量显示信息

DECLARE
pTable PHONE_TYPE;
BEGIN
SELECT phone into pTable FROM person WHERE name='SCOTT';
FOR   i   IN 1..pTable.COUNT LOOP
  DBMS_OUTPUT.PUT_LINE('号码'||i||':'||pTable(i));
END LOOP;

结果如下:

号码1:13256789876

号码2:031198765432

4、更新嵌套表数据:

DECLARE
pTable PHONE_TYPE:=PHONE_TYPE('034223455432','13888888888');
BEGIN
UPDATE person SET phone=pTable WHERE name='SCOTT';
END;

四、可变数组(VARRAY数组)

VARRAY数组是一种集合数据类型,也可以作为表的列来使用,该集合的下标从1开始,并且元素个数是有限制的。语法如下:

DECLARE
TYPE MyArrayTypeName IS VARRAY(size) OF ELEMENT_TYPE [NOT NULL];
my MyArrayTypeName

其中MyArrayTypeName 是数组类型的名字,size表示数组最多存储多少个元素,ELEMENT_TYPE是元素的类型,NOT NULL不允许使用NULL值,my是数组变量的名称。

示例1:

DECLARE
TYPE MyVArrayType IS VARRAY(10) OF dept.dname%TYPE NOT NULL;

--构造方法中最多可以有10(size)个元素

--既是没有定义NOT NULL,也不会自动为4-10元素赋NULL值

nameArray MyVArrayType:=MyVArrayType('1','2','3');
BEGIN
SELECT dname into nameArray(1) from dept where deptno=20;
SELECT dname into nameArray(2) from dept where deptno=30;
DBMS_OUTPUT.PUT_LINE(nameArray(1));
DBMS_OUTPUT.PUT_LINE(nameArray(2));
DBMS_OUTPUT.PUT_LINE(nameArray(3));
END;

结果如下: RESEARCH
SALES
3

上一页  1 2 3 4 5 6 

Tags:PL SQL 定义

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