ORACLE PL/SQL 集合API 总结
ORACLE 10G的集合API
集合API方法最早是在ORACLE 8I中引入的。集合API提供了简化访问集合的方法。在ORACLE 10G以前,这些方法确实简化了对集合的访问。但是,并不是非要求掌握这些方法不可。从ORACLE 9I的INDEX-BY表到ORACLE 10G的联合数组的转换,使它们成为必须掌握的方法。
下面是我从书上摘录下的一些集合API,累死我了……想上网找个图还没有。
方法名称
说明
返回值的类型
所支持集合的类型
COUNT
COUNT方法返回的是VARRAY和嵌套表中已经分配了存储空间的元素的数目。在联合数组上使用这个方法时,它返回联合数组中元素的数目。COUNT方法可能会比VARRAY的LIMIT方法要小。
PLS_INTEGER
所有集合类型
DELETE(n)
DELETE方法带有一个重载的形式参数,形式参数的类型为PLS_INTEGER、VARCHAR2或LONG类型。这个形式参数对应的是集合中元素的下标。它是一个过程,没有返回值。
无返回值
所有集合类型
DELETE(n,m)
DELETE方法带有一个重载的形式参数,形式参数的类型为PLS_INTEGER、VARCHAR2或LONG类型。这两个形式参数分别对应的是最小和最大下标。这两个参数设定了集合中元素的包含范围。它是一个过程,没有返回值。
无返回值
所有集合类型
EXISTS(n)
EXISTS方法判断某个元素是否存在于集合中。它带有一个重载的形式参数,形式参数的数据类型为PLS_INTEGER、VARCHAR2或LONG类型。这个形式参数对应的是集合中元素的下标。即使这个集合是一个空元素集合,调用EXISTS方法也不会引发COLLECTION_IS_NULL异常
TRUE或FALSE
所有集合类型
EXTEND
EXTEND方法为集合中的新元素分配存储空间。它用在向集合添加值以前,为该值分配存储空间。如果试图分配空间的元素超过了VARRAY的LIMIT返回值,该方法就会失败。
没有返回值
VARRAY或嵌套表
EXTEND(n)
EXTEND方法为集合中的多个新元素分配存储空间。它带有一个形式参数,形式参数的数据类型为PLS_INTEGER类型。它用在向集合添加值以前,为该值分配存储空间。如果试图分配空间的元素超过了VARRAY的LIMIT返回值,该方法就会失败。
没有返回值
VARRAY或嵌套表
EXTEND(n,i)
EXTEND方法为集合中的多个新元素分配存储空间。它带有两个形式参数,这两个形式参数类型均为PLS_INTEGER类型。第一个参数表示要添加多少个新元素,第二个参数是引用集合中已有的元素,该元素会被复制到新元素上。如果试图分配空间的元素超过了VARRAY的LIMIT返回值,该方法就会失败。
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
关于存储过程和函数的定义网上一搜一大把,这里就不特殊介绍了,这里就只对我自己写的几种格式的存储过程和函数做一些总结,希望对大家有点帮助。
一:存储过程
1:最普通的一种。(传参,查询游标,执行,循环游标做插入动作)。
create or replace procedure zy2040_sirole(rolekey in varchar2) ......
declare
msg varchar(1000); --定义一个变量用于显示传出的信息
begin
PRO_TACCOUNT_RECOUNT ('B9D2B59A955541298D59EA8C35668CFD',msg); --执行存储过程
dbms_output.put_line(msg); --输出变量
end; ......
建表
create table users(
id number(4) primary key,
username varchar2(10),
password varchar2(10)
)
查询表并解锁表(即可以点击输入框下面的"锁"图标工具, 即"Edit data")
select * from users for update
删除表中多余的列
alter table mobilephone drop column mobiletype
转载
------------------- ......
三、嵌套表的使用方法
1、将嵌套表定义为PL/SQL的程序构造块
TYPE type_name IS TABLE OF element_type[NOT NULL];
如下例所示:
DECLARE
-- Define a nested table of variable length strings.
TYPE card_table IS TABLE OF VARCHAR2(5 CHAR);
-- Declare and initialize a n ......