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返回值,该方法就会失败。
相关文档:
declare
msg varchar(1000); --定义一个变量用于显示传出的信息
begin
PRO_TACCOUNT_RECOUNT ('B9D2B59A955541298D59EA8C35668CFD',msg); --执行存储过程
dbms_output.put_line(msg); --输出变量
end; ......
select decode('X','Q','变量1','变量2') from dual
select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual
select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual
日期格式参数 含义说明
D 一周中的星期几
DAY 天的名 ......
oracle 逻辑备份命令EXP/IMP参数参考手册
帮助命令:exp help=y
Export: Release 10.2.0.1.0 - Production on Thu Jul 20 10:39:50 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
You can let Export prompt you for parameters by entering the EXP
command followed b ......
在PL/SQL程序设计中,有三种定义记录类型的方法:一种是使用%ROWTYPE属性;另一种是在PL/SQL程序的声明部分显示定义记录类型;最后一种方法是将记录类型定义为数据库结构或对象类型。
我先简单的介绍一个下面要用到的表的结构(黑体标明的字段为主键):
INDIVIDUALS表
INDIVIDUAL ID
FIRST NAME
MIDDLE_INITI ......
三、嵌套表的使用方法
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 ......