PL/SQL:
不仅可以嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,也可以使用例外处理各种错误;
pl/sql的优点:
- 提高应用程序的运行性能
- 模块化的设计思想
- 减少网络传输量
- 提高安全性
- 移植性不好
v_ename emp.ename%type; ---定义的引用类型变量
begin
select ename into v_ename from emp where empno=参数;
dbms_output.put_line(v_ename);
end;
exec pro(参数……); --调用存储过程
我们把PL/SQL过程编译成本地代码放到共享库中存储过程,这样只需编译一次可以多次执行调用,不会重新编写很长的代码;
2、模块化设计思想
pl/sql 块由三个部分构成:定义部分,执行部分,例外处理部分。
如下所示。
declare
/*定义部分——定义常量、变量、游标、例外、复杂数据类型*/
begin
/*执行部分——要执行的pl/sql语句和sql语句*/
exception
/*例外处理部分——处理运行的各种错误*/
end;
3、减少网络传输量
如果我们用java链接数据库,而使用sql语句,当我们向数据库发送sql语句的时候,会经过数据库管理系统dbms,然后在到数据库实例。然而sql语句到了dbms的时候,
dbms并不知道是什么意思,它需要自己慢慢解析,解析完成在进入数据库实例,这样会很耗费时间。如果用sql/pl,把PL/SQL过程编译成本地代码放到共享库中存储过程,只需要调用一下写好的,而不需要多余sql的代码,大大减少代码量。传输也自然不用大量传输。
4、提高安全性
可以通过存储过程限制用户对数据的访问。
5、移植性不好
pl/sql如果换成其他的数据库就不可行了,需要修改代码,操作极其复杂。