3.1PL/SQL词汇单元
编写PL/SQL块时,每个PL/SQL块都包含多行代码,而每行代码又是由多个合法单元组成的,这些合法单元被称为词汇。PL/SQL有四种词汇单元:
<!--[if !supportLists]-->l <!--[endif]-->分隔符(Delimiter):指具有特定含义的单个符号或组合符号。
<!--[if !supportLists]-->l <!--[endif]-->标识符(Identifier)
<!--[if !supportLists]-->l <!--[endif]-->文字串(Literal)
<!--[if !supportLists]-->l <!--[endif]-->注释(Comment)
<!--[if !supportLists]-->1. <!--[endif]-->分隔符
<!--[if !supportLists]-->(1) <!--[endif]-->单符号分隔符
单符号分隔符是指只包含单个符号的PL/SQL分隔符。
符号
含义
+
加法操作符
%
属性提示符
‘
字符串分隔符
.
组件分隔符
/
除法分隔符
(
表达式或列表分隔符
)
表达式或列表分隔符
:
非PL/SQL变量提示符
,
项分隔符(表名、列名等分隔符)
*
乘法操作符
“
双引号变量分隔符
=
相等操作符
<
小于操作符
>
大于操作符
@
远程数据库访问操作符
;
语句终止符
-
减法操作符或负数操作符
<!--[if !supportLists]-->(2) <!--[endif]-->组合分隔符
组合分隔符是指由多个符号组成的PL/SQL分隔符。
符号
含义
:=
赋值操作符
->
关联操作符
||
连接操作符
**
幂操作符
<<
标号开始分隔符
>>
标号结束分隔符
/*
多行注释开始分隔符
*/
多行注释结束分隔符
..
范围操作符
<>
不等操作符
!=
不等操作符
^=
不等操作符
<=
小于等于操作符
>=
大于等于操作符
--
单行注释提示符
<!--[if !supportLists]-->2. <!--[endif]-->标识符
标识符用于指定PL/SQL程序单元和程序项的名称。通过使用标识符,可以定义常量、变量、例外、显式游标、游标变量、参数、子程序以及包的名称。当使用标识符定义PL/SQL程序项或程序单元时,必须要满足以下规则:
<!--[if !supportLists]-->l <!--[endif]-->当使用标识符定义变量、常量时,每行只能定义一个标识符
<!--[if !supportLists]-->l <!--[endif]-->当使用标识符定义变量、常量时,标识符名称必须要以阿拉伯字符(A~Z,a~z)开始,并且最大长度为30个字符。如果以其他字符开始,那么必须要使用双引号引住。
<!--[if !supportLists]-->l <!--[endif]-->当使用标识符定义变量、常量时,标识符名称只能使用符号A~Z,a~z,0~9,_,$和#。如果要使用其他字符,那么必须要使用双引号引住。
<!--[if !supportLists]-->l <!--[endif]-->当使用标识符定义变量、常量时,标识符名称不能使用Oracle的关键字。如果要使用Oracle关键字定义变量、常量,那么必须要使用双引号引住。
<!--[if !supportLists]-->3. <!--[endif]-->文本
文本是指数字、字符、字符串、日期值或布尔值,而不是标识符。文本包括:
<!--[if !supportLists]-->l <!--[endif]-->数字文本:是指整数或浮点数,它们可以直接在算术表达式中引用。当编写PL/SQL代码时,用户可以使用科学计数法和幂操作符(**)。注意,科学计数法和幂操作符只适用于PL/SQL语句,而不适用于SQL语句。
<!--[if !supportLists]-->l <!--[endif]-->字符文本:是指用单引号引住的单个字符,这些字符可以是PL/SQL支持的所有可打印字符,包括阿拉伯字符(A~Z,a~z)、数字字符(0~9)以及其他符号(等)。
<!--[if !supportLists]-->l <!--[endif]-->字符串文本:是指由两个或两个以上字符组成的字符值。当指定字符串文本时,必须要用单引号将字符串文本引住。
<!--[if !supportLists]-->l <!--[endif]-->布尔文本:是指BOOLEAN值,它主要用在条件表达式中,布尔文本有三种值:TRUE、FALSE和NULL。
<!--[if !supportLists]-->l <!--[endif]-->日期时间文本:是指日期事件值,与字符串类似,日期文本也必须要用单引号引住,并且日期值必须要与日期格式和日期语言匹配。
<!--[if !supportLists]-->4. <!--[endif]-->注释
注释用于解释单行代码或多行代码的作用,从而提高了PL/SQL程序的可读性。当编译并执行PL/SQL代码时,PL/SQL编译器会忽略注释。注释包括:
<!--[if !supportLists]-->l <!--[endif]-->单行注释:是指放置在一行上的注释文本,并且单行注释主要用于说明单行代码的作用。在PL/SQL中使用—符号编写单行注释。
<!--[if !supportLists]-->l <!--[endif]-->多行注释:是指分布到多行上的注释文本,并且其主要的作用是说明一段代码的作用。在PL/SQL中使用/*…*/来编写多行注释。
3.2PL/SQL代码编写规则
<!--[if !supportLists]-->1. <!--[endif]-->标识符名迷宫规则
当在PL/SQL中使用标识符定义变量、常量时,标识符名称必须以字符开始。并且长度不能超过30个字符。另外,为了提高程序的可读性,Oracle建议用户按照以下规则定义各种标识符:
<!--[if !supportLists]-->l <!--[endif]-->当定义变量时,建议使用v_作为前缀,例如v_sal,v_job等
<!--[if !supportLists]-->l <!--[endif]-->当定义常量时,建议使用c_作为前缀,例如c_rate
<!--[if !supportLists]-->l <!--[endif]-->当定义游标时,建议使用_cursor作为后缀,例如emp_cursor
<!--[if !supportLists]-->l <!--[endif]-->当定义例外时,建议使用e_作为前缀,例如e_integrity_error
<!--[if !supportLists]-->l <!--[endif]-->当定义PL/SQL表类型时,建议使用_table_type作为后缀,例如al_table_type
<!--[if !supportLists]-->l <!--[endif]-->当定义PL/SQL表变量时,建议使用_table作为后缀,例如sal_table
<!--[if !supportLists]-->l <!--[endif]-->当定义PL/SQL记录类型时,建议使用_record_type作为后缀,例如emp_record_type
<!--[if !supportLists]-->l <!--[endif]-->当定义PL/SQL记录变量时,建议使用_record作为后缀,例如emp_record
<!--[if !supportLists]-->2. <!--[endif]-->大小写规则
当在PL/SQl块中编写SQL语句和PL/SQL语句时,语句既可以使用大写格式,也可以使用小写格式,但是,为了提高程序的可读性和性能,Oralce建议用户按照以下大小写规则编写代码:
<!--[if !supportLists]-->l <!--[endif]-->SQL关键字采用大写格式,例如SELECT,UPDATE,SET,WHERE等
<!--[if !supportLists]-->l <!--[endif]-->PL/SQL关键字采用大写格式,例如DECLARE,BEGIN,END等
<!--[if !supportLists]-->l <!--[endif]-->数据类型采用大写格式,例如INT,VARCHAR2,DATE等
<!--[if !supportLists]-->l <!--[endif]-->标识符和参数采用小写格式,例如v_sal,c_rate等
<!--[if !supportLists]-->l <!--[endif]-->数据库对象和列采用小写格式,例如emp,sal,ename等
<!--[if !supportLists]-->3. <!--[endif]-->代码缩进
类似于其他编程语言,当编写PL/SQL块时,为了提高程序可读性,同级代码应该对齐,而下一级代码则应该缩进。
<!--[if !supportLists]-->4. <!--[endif]-->嵌套块和变量范围
嵌套块是指嵌入在一个PL/SQL块中的另一个PL/SQL块,其中被嵌入的块被称为子块,而包含子块的PL/SQL块则被称为主块。当使用嵌套块时,注意,子块可以引用主块所定义的任何标识符,但主块却不能引用子块的任何标识符。也就是说,子块定义的标识符是局部标识符(局部变量),而主块定义的标识符是全局标识符(全局变量)。
<!--[if !supportLists]-->5. <!--[endif]-->在PL/SQL块中可以使用的SQL函数
在编写PL/SQL代码时,可以直接引用大多数的单行SQL函数。这些SQL函数包括单行数字函数(例如ROUND)、单行字符函数(例如UPPER)、转换函数(例如TO_CHAR)以及各种日期函数(例如MONTHS_BETWEEN)。但是,用户需要注意,某些SQL函数只能在SQL语句中引用,而不能直接在PL/SQL语句中引用,这些SQL函数包括GREATEST,LEAST,DECODE以及所有分组函数(例如SUM)。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26690043/viewspace-716917/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26690043/viewspace-716917/