PLSQL程序设计(基础篇) 联系客服

发布时间 : 星期二 文章PLSQL程序设计(基础篇)更新完毕开始阅读2777a8e0960590c69ec376b2

Shu 以上的程序说明了嵌套表的使用特点,类型定义可以在SQL语句中,也可以在PLSQL程序中,而且前者可以作为表的字段类型,注意的是必须使用nested table XXX store as XXX,后面学的varray就不用指定存储表,因为它是存储在所在表中。使用前要使用构造函数初始化,向Java一样,然后,在使用时,一般使用内臵extend拓展并初始化单个元素。 变长数组varray和嵌套表很像啊,区别就是varray容量有限是紧凑储存的而且使用它作为字段时不需要指定存储表。不多说了,直接看源码吧。 首先,定义必须的前提createvarray.sql: 源码varray.tst: -- Created on 2010-4-27 by Quasar declare type prog_vr_names_type is varray(10) of varchar2(20); prog_vr_names prog_vr_names_type := prog_vr_names_type(); put_vr_names varray_type := varray_type('Jacky', 'Christfa'); 21 get_vr_names varray_type; begin prog_vr_names.extend(3); prog_vr_names(1) := 'Elaine'; prog_vr_names(3) := 'Jobh'; insert into test_varray values(1234, put_vr_names); commit; select tv.vr_names into get_vr_names from test_varray tv where tv.id = 1234; dbms_output.put_line('共取出记录:'||get_vr_names.count||'条!'); end; 运行结果: 那还用问,必须的,两条啊! 以上学习了复合类型的使用,后面还要学习集合类型的函数使用,不过,我猜我现在对集合类型的了解有点混乱,先给大家列个表吧,然后再继续学习集合类型。 22 特性 存储类型 容量限制 可以用于表字段类型 初始化前 元素初始化 空集合 默认为空 索引表 稀疏 无限 不可以 嵌套表 初始稀疏 无限 变长数组 一直稀疏 有限 可以,但必须指可以 定存储表 NULL 构造函数+extend NULL 构造函数+extend 1 – 很大 索引类型 数字、字符串 1- 很大 差不多得了,主要是会用,呵呵,下面就学学集合函数吧!集合提供给大家如下函数,见下表: 函数 EXTEND 作用 用法 索引表 N 嵌套表 Y 变长数组 Y 增加一个extend(n) 空元素 DELETE 删除元素 delete全部 N delete(n) delete(m,n) Y Y TRIM 从尾部删trim一个 除 trim(n) N Y Y 23 还有就是一些其他的函数了,包括:EXISTS, COUNT, LIMIT(只适用于VARRAY),FIRST和LAST下标, PRIOR和NEXT下标。 集合的操作不只是这些,不过我是一时接受不了太多….还包括集合赋值、集合比较啊,使用时再细细体会吧!希望大虾赐教啊! 在这一部分当中,批量绑定很重要啊,能够大大提高在处理集合时的效率,感觉也比较常用,主要是forall和bulk collect两种语法,下面就学学批量绑定(bulk binding)吧! FORALL: 使用格式: FORALL index IN start..end FORALL index IN INDICES OF collection FORALL index IN VALUES OF indexs_collection BULK COLLECT: 使用格式: …...BULK COLLECT INTO collection 源码bulkbinding.tst: -- Created on 2010-4-28 by Quasar declare type dname_table_type is table of dept_bck.dname%type; v_dname_table dname_table_type; v_return_table dname_table_type; 24