代码改变世界

总结2

2012-04-14 22:14  myjava2  阅读(177)  评论(0编辑  收藏  举报

一、使用复合数据类型(属性类型)

1.PL/SQL记录(处理单行单列数据):ReCord和RowType。
2.PL/SQL集合(处理单列多行数据):索引表(PL/SQL表)、嵌套表(Nested Table)、变长数组(Varray)三种类型。
3.PL/SQL记录表(处理多行多列数据):和索引表一样。
4.集合方法:Exists、Count、Limit、First和Last、Prior和Next、(Extend、Trim指适用于嵌套和变长)、delete。
5.集合赋值(集合数据类型必须一致)。
6.批量绑定(ForAll语句(只能用于Select、Fetch、DML返回语句中),Bulk Collect子句([Select|Fetch] into语句中和DML语句))。
7.批处理在赋值的时候不需要初始化集合(嵌套表,变长数组)的大小。

二、游标

1.静态游标:显式游标和隐式游标。

2.显式游标属性(游标的当前状态):%ISOPEN,%FOUND,%NOTFOUND,%ROWCOUNT。

3.当游标指针到达末尾时,取得是缓冲区里面的值,提取最后一行数据时,再往下走会去最后一行,属性还是当前值。

4.参数游标的使用:可以通过不同的参数值生成不同的结果集。

5.游标更新、删除数据(For Update加上行共享锁):WHERE CURRENT OF子句

6.锁:DML锁、行共享锁(FOR Update)、列级锁(FOR Update of 列名)(指这一列所在的这一行,一般用于两表查询)。

7.WAIT和NOWAIT。

8.游标FOR循环(注:可以直接使用子查询)。

9.游标变量(REF CURSOR)。

三、子程序(存储过程、函数)

1.存储过程(是一个有名称的块)用于执行特定的操作。

2.存储过程参数:输入参数(IN)、输出参数(OUT)、输入输出参数(IN OUT)。

3.在过程中输入(IN)参数不能被赋值,输出参数(OUT)可以在调用时被赋值,但在过程里面不会接收。

4.存储过程的参数传递:位置传递、名称传递、组合传递(可以支持IN,OUT参数,例如dname=>'SALES')。

5.函数用于返回特定数据,必须有返回值

6.函数调用限制,只能作为表达式的一部分调用。

7.SQL语句调用函数的限制(调用的函数只能带有输入参数(IN),其他的不能,只能使用SQL所支持的标准数据类型)。

8.管理子程序(USER_OBJECTS、USER_ERRORS(错误信息))。

四、开发包

1.包(Package)用于逻辑组合相关的PL/SQL类型、项和子程序,由包规范和包体组成。

2.包规范和包体是独立的两个对象,包体名称和包规范名称必须相同。

3.包的内部可以定义静态游标和游标类型,但不可以定义游标变量。

4.包的重载(其函数返回类型必须相同,其它的和Java重载一样)。

5.包的构造过程。