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返回值,该方法就会失败。
相关文档:
默认的情况下,如果没有配置压缩备份,或者备份的时候没有发出compressed 命令,那么ORACLE会采用NULL数据块的压缩方法来备份数据库,采用这种方法备份,ORACLE就不会备份从未使用过的数据块。另外一种备份就是采用compressed命令压缩备份,采用这种方法,ORACLE会使用压缩算法来备份数据,通常会 ......
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 天的名 ......
建表
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
转载
------------------- ......
在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 ......