[顶]ORACLE PL/SQL编程详解之二:
PL/SQL块结构和组成元素(为山九仞,岂一日之功)
ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)
[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)
昨天与我的一个朋友聊天,他可是技术牛人,但从来不写博客。我建议他写写博客,他说没时间,再说没意思。写博客好处多多,不仅可对自己的知识进行一个总体性的提炼和总结,引发深思,同时网上也有很多技术达人,可对你的文章提出建设性的意见,不管理对自己还是对别人都是一种帮助与提高。最主要的是可以为社会留下点什么。虽然我没有那么高尚,但人活一辈子,以后老死了总得留点东西给后辈吧~!我觉得有的人很可悲,虽然他个人能力超强,可不愿意分享自己的知识,这是为什么呢?
一句话:通过知识共享树立个人品牌。
接下来介绍PL/SQL的基础篇:PL/SQL块结构和组成元素,还望大家继续支持与推荐~!
本篇主要内容如下:
2.1 PL/SQL块
PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分。
PL/SQL块的结构如下:
--声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数
BEGIN
-- 执行部分: 过程及SQL 语句 , 即程序的主要部分
EXCEPTION
-- 执行异常部分: 错误处理
END;
其中:执行部分不能省略。
PL/SQL块可以分为三类:
1. 无名块或匿名块(anonymous):动态构造,只能执行一次,可调用其它程序,但不能被其它程序调用。
2. 命名块(named):是带有名称的匿名块,这个名称就是标签。
3. 子程序(subprogram):存储在数据库中的存储过程、函数等。当在数据库上建立好后可以在其它程序中调用它们。
4. 触发器 (Trigger):当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
5. 程序包(package):存储在数据库中的一组子程序、变量定义。在包中的子程序可以被其它程序包或子程序调用。但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序。
2.2 PL/SQL结构
l PL/SQL块中可以包含子块;
l 子块可以位于 PL/SQL中的任何部分;
l 子块也即PL/SQL中的一条命令;
2.3 标识符
PL/SQL程序设计中的标识符定义与SQL 的标识符定义的要求相同。要求和限制有:
l 标识符名不能超过30字符;
l 第一个字符必须为字母;
l 不分大小写;
l 不能用’-‘(减号);
l 不能是SQL保留字。
提示: 一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果.
例如:下面的例子将会删除所有的纪录,而不是’EricHu’的记录;
ename varchar2(20) :='EricHu';
BEGIN
DELETE FROM scott.emp WHERE ename=ename;
END;
变量命名在PL/SQL中有特别的讲究,建议在系统的设计阶段就要求所有编程人员共同遵守一定的要求,使得整个系统的文档在规范上达到要求。下面是建议的命名方法:
标识符 |
命名规则 |
例子 |
||
程序变量 |
V_name |
V_name |
||
程序常量 |
C_Name |
C_company_name |
||
游标变量 |
Cursor_Name |
Cursor_Emp |
||
异常标识 |
E_name |
E_too_many |
||
表类型 |
Name_table_type |
Emp_record_type |
||
表 |
Name_table |
Emp |
||
记录类型 |
Name_record |
Emp_record |
||
SQL*Plus 替代变量 |
P_name |
|