Oracle中PLSQL复合数据类型


当前第2页 返回上一页

定义记录表类型的语法如下:

TYPE table_name IS TABLE OF element_type [NOT NULL] 
INDEX BY [BINARY_INTEGER | PLS_INTEGER | VARRAY2];

记录表中的方法:

  • EXISTS(n):如果集合的第n个成员存在,则返回true
  • COUNT:返回已经分配了存储空间即赋值了的成员数量
  • FIRST:返回成员的最低下标值
  • LAST:返回成员的最高下标值
  • PRIOR(n):返回下标为n的成员的前一个成员的下标。如果没有则返回NULL
  • NEXT(N):返回下标为n的成员的后一个成员的下标。如果没有则返回NULL
  • TRIM:删除末尾一个成员
  • TRIM(n) :删除末尾n个成员
  • DELETE:删除所有成员
  • DELETE(n) :删除第n个成员
  • DELETE(m, n) :删除从n到m的成员
  • EXTEND:添加一个null成员
  • EXTEND(n):添加n个null成员
  • EXTEND(n,i):添加n个成员,其值与第i个成员相同
  • LIMIT:返回在varray类型变量中出现的最高下标值

例1:

declare 
type emp_table_type is table of emp%rowtype
index by binary_integer;
emp_table emp_table_type;
begin
select * bulk collect into emp_table from emp where deptno=&dno;
for i in 1..emp_table.count loop
dbms_output.put_line('雇员名: '||emp_table(i).ename||',工资: '||emp_table(i).sal);
end loop;
end;

按一维数组使用表:

DECLARE
--定义记录表数据类型
   TYPE reg_table_type IS TABLE OF varchar2(25)
   INDEX BY BINARY_INTEGER;
--声明记录表数据类型的变量
   v_reg_table REG_TABLE_TYPE;
    
BEGIN
   v_reg_table(1) := 'Europe';
   v_reg_table(2) := 'Americas';
   v_reg_table(3) := 'Asia';
   v_reg_table(4) := 'Middle East and Africa';
   v_reg_table(5) := 'NULL';
 
   DBMS_OUTPUT.PUT_LINE('地区名称:'||v_reg_table (1)||'、'       ||v_reg_table (2)||'、'      ||v_reg_table (3)||'、'      ||v_reg_table (4));
   DBMS_OUTPUT.PUT_LINE('第5个成员的值:'||v_reg_table(5));
END;

四、varry数据类型:数组

具有相同数据类型的一组成员的集合,每个成员都有一个唯一的下标。

定义VARRAY数据类型的语法如下:

TYPE VARRAY_NAME IS VARRAY(SIZE) OF ELEMENT_TYPE [NOT NULL];

VARRAY的使用举例:

DECLARE
--定义一个最多保存5个VARCHAR(25)数据类型成员的VARRAY数据类型
   TYPE reg_varray_type IS VARRAY(5) OF VARCHAR(25);
--声明一个该VARRAY数据类型的变量
   v_reg_varray REG_VARRAY_TYPE;

BEGIN
--用构造函数语法赋予初值
   v_reg_varray := reg_varray_type
         ('中国', '美国', '英国', '日本', '法国');

   DBMS_OUTPUT.PUT_LINE('地区名称:'||v_reg_varray(1)||'、'
                                    ||v_reg_varray(2)||'、'
                                    ||v_reg_varray(3)||'、'
                                    ||v_reg_varray(4));
   DBMS_OUTPUT.PUT_LINE('赋予初值NULL的第5个成员的值:'||v_reg_varray(5));
--用构造函数语法赋予初值后就可以这样对成员赋值
   v_reg_varray(5) := '法国';
   DBMS_OUTPUT.PUT_LINE('第5个成员的值:'||v_reg_varray(5));
END;

到此这篇关于Oracle中PL/SQL复合数据类型的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。


标签:Oracle

返回前面的内容

相关阅读 >>

oracle数据库常用的99条查询语句

navicat如何连接到oracle

mysql和oracle的区别有哪些

mysql和oracle的区别是什么

oracle收费吗

oracle 触发器的使用小结

oracle数据库事务隔离级别介绍

oracle用户权限、角色管理详解

oracle 11g从 11.2.0.1升级到11.2.0.4 详细实战教程

linux 创建oracle数据库的详细过程

更多相关阅读请进入《oracle》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...