要把程序做得有灵魂
By think
1 pl/sql是什么
过程,函数,触发器是pl/sql编写的。
过程,函数,触发器是在oracle的system表空间里面。
Pl/sql是非常强大的数据库过程化语言
过程,函数可以在java程序中调用
2 为什么要学pl/sql
1)提高运用程序的运行性能
因为把预处理的sql语句写成模块,放到oracle中解析,而运用程序只要调用这些个模块就行了,省去了一条条sql传到oracle中,再解析,再编译,再返回。
2)模块化的设计思想
比如:把分页的过程,转账的过程,订单的过程等按一个个模块写好放在oracle中,需要的时候再去调用,这样,省去了人力,提高了系统质量,也优化了管理。
3)减少了网络的传输量
4)提高安全性
一般的sql语句会在运用程序中,直接罗列了表名,字段名,甚至是密码,而若把这些放在存储过程中,再加上oracle本身的保护,那安全性不言而喻了。
3 小试牛刀
编写一个过程,该过程可以向某表添加一条记录
1) 创建一张简单表
Create table test_01 (name varchar2(15))
2) 创建一个简单过程
Create procedure p_think
Is
Begin
Insert into test_01 values (‘think’);
End;
/
3) 查看错误信息
Show error
4) 调用
Exec 过程名(参数值)
4 开发工具
Sqlplus pl/sql develop toad等
5 pl/sql编程的基本单位是块。在块的基础上架构过程,函数,触发器,包等。编写pl/sql程序,实际上就是在编写pl/sql块。复杂的业务,可能需要多个并列或嵌套的pl/sql块。块由三部分组成:
Declare
/*定义部分,如常量,变量,游标,例外等,该部分可选*/
Begin
/*执行部分,要执行的pl/sql语句和sql语句,该部分必须*/
Exception
/*例外处理部分—处理运行时的各种错误,该部分可选*/
6 编程规范
1)注释
单行注释:--
多行注释:/*……..*/
2)标识符的命名规范
定义变量时,建议v_打头
定义常量时,建议c_打头
定义例外时,建议e_打头
定义游标时,建议 _cursor 后缀