PLSQL常识

来源:互联网 发布:淘宝店铺怎么升级天猫 编辑:程序博客网 时间:2024/05/29 16:17
PLSQL与SQL的对比:
SQL是非过程语言,只能一条一条执行,而PLSQL把一个PLSQL块统一进行编译后执行,同时还可以把编译好的PLSQL块存储起来,以备重用,相比SQL,PLSQL是快速而高速的。
PLSQL:
>>支持SQL
>>支持面向对象
>>更好的性能
>>可移植性
>>安全性

变量赋值的两种方式:
>>:=
>>SELECT [字段1],[字段2].... INTO [变量],[变量2]... FROM [表名]
对于SELECT .. INTO .. FROM ...需注意:
>一般多跟聚合函数一起。
>可以对多个值进行赋值。
>类型和个数都要匹配。

PLSQL数据类型:
变量数据类型: 标量数据类型的变量只有一个值,且内部没有分量(例如:VAECHAR2、NUMBER....)。
属性数据类型:存在两种数据类型:%TYPE和%ROWTYPE.

PLSQL控制语句:
(1)IF 条件 THEN --条件成立结构体 ELSIF --条件成立结构体 ELSE END IF;
(2)CASE[selector] WHRN 表达式1 THEN 语句; [ELSE 语句序列n]; END CASE;需注意:值必须有匹配的匹配项,没有就系统错误,WHEN .. THEN..;至少出现一次

PLSQL循环语句:

(1)LOOP循环:天生死循环,运行时死循环会报系统错误。 语法:LOOP....END LOOP;
(2)WHILE循环:与JAVA类似,先判断条件,再执行。 语法:WHILE [表达式] LOOP...END IF;
(3)FOR循环:需要先确定循环次数。 FOR 循环变量 IN[REVERSE 降序关键字]循环上限..循环下限 LOOP [循环体] END LOOP;


动态SQL:
动态SQL的执行过程:编译成块---再有编译器执行。
语法:EXECUTE IMMEDIATE 动态语句字符串
     [INTO 变量列表]
     [USING 参数列表]
EXECUTE IMMEDIATE相当于js中的eval,景字符串转换成可执行代码。
动态SQL中的占位符:(:[占位符代号(可以随意给)]);
由动态SQL执行后返回的参数必须要变量接收。

PLSQL异常:
3种异常:
自定义异常:没有异常码,有异常名,由RAISE 异常名抛出。
系统异常:有异常码,未知异常名,由RAISE_APPLICATION_ERROR(异常码,异常信息)抛出。
自定义系统异常:有异常码,有异常名,由 PRAGMA EXCEPTION_INIT(异常名,异常码)注册进系统,由RAISE_APPLICATION_ERROR(异常码,异常信息)抛出(多用此种).

关于异常码:异常码若重复会报冗余的系统错误,自定义异常的异常码范围-20000到-20999之间的负整数。

用EXCEPTION来捕捉异常。