编写PL/SQL代码

3.1PL/SQL词汇单元

编写PL/SQL块时,每个PL/SQL块都包含多行代码,而每行代码又是由多个合法单元组成的,这些合法单元被称为词汇。PL/SQL有四种词汇单元:

<!--[if !supportLists]--&gtl <!--[endif]--&gt分隔符(Delimiter):指具有特定含义的单个符号或组合符号。

<!--[if !supportLists]--&gtl <!--[endif]--&gt标识符(Identifier)

<!--[if !supportLists]--&gtl <!--[endif]--&gt文字串(Literal)

<!--[if !supportLists]--&gtl <!--[endif]--&gt注释(Comment)

<!--[if !supportLists]--&gt1. <!--[endif]--&gt分隔符

<!--[if !supportLists]--&gt(1) <!--[endif]--&gt单符号分隔符

单符号分隔符是指只包含单个符号的PL/SQL分隔符。

符号
含义

+
加法操作符

%
属性提示符


字符串分隔符

.
组件分隔符

/
除法分隔符

(
表达式或列表分隔符

)
表达式或列表分隔符

:
非PL/SQL变量提示符

,
项分隔符(表名、列名等分隔符)

*
乘法操作符


双引号变量分隔符

=
相等操作符

<
小于操作符

>
大于操作符

@
远程数据库访问操作符

;
语句终止符

-
减法操作符或负数操作符

<!--[if !supportLists]--&gt(2) <!--[endif]--&gt组合分隔符

组合分隔符是指由多个符号组成的PL/SQL分隔符。

符号
含义

:=
赋值操作符

->
关联操作符

||
连接操作符

**
幂操作符

<<
标号开始分隔符

>>
标号结束分隔符

/*
多行注释开始分隔符

*/
多行注释结束分隔符

..
范围操作符

<>
不等操作符

!=
不等操作符

^=
不等操作符

<=
小于等于操作符

>=
大于等于操作符

--
单行注释提示符

<!--[if !supportLists]--&gt2. <!--[endif]--&gt标识符

标识符用于指定PL/SQL程序单元和程序项的名称。通过使用标识符,可以定义常量、变量、例外、显式游标、游标变量、参数、子程序以及包的名称。当使用标识符定义PL/SQL程序项或程序单元时,必须要满足以下规则:

<!--[if !supportLists]--&gtl <!--[endif]--&gt当使用标识符定义变量、常量时,每行只能定义一个标识符

<!--[if !supportLists]--&gtl <!--[endif]--&gt当使用标识符定义变量、常量时,标识符名称必须要以阿拉伯字符(A~Z,a~z)开始,并且最大长度为30个字符。如果以其他字符开始,那么必须要使用双引号引住。

<!--[if !supportLists]--&gtl <!--[endif]--&gt当使用标识符定义变量、常量时,标识符名称只能使用符号A~Z,a~z,0~9,_,$和#。如果要使用其他字符,那么必须要使用双引号引住。

<!--[if !supportLists]--&gtl <!--[endif]--&gt当使用标识符定义变量、常量时,标识符名称不能使用Oracle的关键字。如果要使用Oracle关键字定义变量、常量,那么必须要使用双引号引住。

<!--[if !supportLists]--&gt3. <!--[endif]--&gt文本

文本是指数字、字符、字符串、日期值或布尔值,而不是标识符。文本包括:

<!--[if !supportLists]--&gtl <!--[endif]--&gt数字文本:是指整数或浮点数,它们可以直接在算术表达式中引用。当编写PL/SQL代码时,用户可以使用科学计数法和幂操作符(**)。注意,科学计数法和幂操作符只适用于PL/SQL语句,而不适用于SQL语句。

<!--[if !supportLists]--&gtl <!--[endif]--&gt字符文本:是指用单引号引住的单个字符,这些字符可以是PL/SQL支持的所有可打印字符,包括阿拉伯字符(A~Z,a~z)、数字字符(0~9)以及其他符号(等)。

<!--[if !supportLists]--&gtl <!--[endif]--&gt字符串文本:是指由两个或两个以上字符组成的字符值。当指定字符串文本时,必须要用单引号将字符串文本引住。

<!--[if !supportLists]--&gtl <!--[endif]--&gt布尔文本:是指BOOLEAN值,它主要用在条件表达式中,布尔文本有三种值:TRUE、FALSE和NULL。

<!--[if !supportLists]--&gtl <!--[endif]--&gt日期时间文本:是指日期事件值,与字符串类似,日期文本也必须要用单引号引住,并且日期值必须要与日期格式和日期语言匹配。

<!--[if !supportLists]--&gt4. <!--[endif]--&gt注释

注释用于解释单行代码或多行代码的作用,从而提高了PL/SQL程序的可读性。当编译并执行PL/SQL代码时,PL/SQL编译器会忽略注释。注释包括:

<!--[if !supportLists]--&gtl <!--[endif]--&gt单行注释:是指放置在一行上的注释文本,并且单行注释主要用于说明单行代码的作用。在PL/SQL中使用—符号编写单行注释。

<!--[if !supportLists]--&gtl <!--[endif]--&gt多行注释:是指分布到多行上的注释文本,并且其主要的作用是说明一段代码的作用。在PL/SQL中使用/*…*/来编写多行注释。

3.2PL/SQL代码编写规则

<!--[if !supportLists]--&gt1. <!--[endif]--&gt标识符名迷宫规则

当在PL/SQL中使用标识符定义变量、常量时,标识符名称必须以字符开始。并且长度不能超过30个字符。另外,为了提高程序的可读性,Oracle建议用户按照以下规则定义各种标识符:

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义变量时,建议使用v_作为前缀,例如v_sal,v_job等

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义常量时,建议使用c_作为前缀,例如c_rate

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义游标时,建议使用_cursor作为后缀,例如emp_cursor

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义例外时,建议使用e_作为前缀,例如e_integrity_error

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义PL/SQL表类型时,建议使用_table_type作为后缀,例如al_table_type

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义PL/SQL表变量时,建议使用_table作为后缀,例如sal_table

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义PL/SQL记录类型时,建议使用_record_type作为后缀,例如emp_record_type

<!--[if !supportLists]--&gtl <!--[endif]--&gt当定义PL/SQL记录变量时,建议使用_record作为后缀,例如emp_record

<!--[if !supportLists]--&gt2. <!--[endif]--&gt大小写规则

当在PL/SQl块中编写SQL语句和PL/SQL语句时,语句既可以使用大写格式,也可以使用小写格式,但是,为了提高程序的可读性和性能,Oralce建议用户按照以下大小写规则编写代码:

<!--[if !supportLists]--&gtl <!--[endif]--&gtSQL关键字采用大写格式,例如SELECT,UPDATE,SET,WHERE等

<!--[if !supportLists]--&gtl <!--[endif]--&gtPL/SQL关键字采用大写格式,例如DECLARE,BEGIN,END等

<!--[if !supportLists]--&gtl <!--[endif]--&gt数据类型采用大写格式,例如INT,VARCHAR2,DATE等

<!--[if !supportLists]--&gtl <!--[endif]--&gt标识符和参数采用小写格式,例如v_sal,c_rate等

<!--[if !supportLists]--&gtl <!--[endif]--&gt数据库对象和列采用小写格式,例如emp,sal,ename等

<!--[if !supportLists]--&gt3. <!--[endif]--&gt代码缩进

类似于其他编程语言,当编写PL/SQL块时,为了提高程序可读性,同级代码应该对齐,而下一级代码则应该缩进。

<!--[if !supportLists]--&gt4. <!--[endif]--&gt嵌套块和变量范围

嵌套块是指嵌入在一个PL/SQL块中的另一个PL/SQL块,其中被嵌入的块被称为子块,而包含子块的PL/SQL块则被称为主块。当使用嵌套块时,注意,子块可以引用主块所定义的任何标识符,但主块却不能引用子块的任何标识符。也就是说,子块定义的标识符是局部标识符(局部变量),而主块定义的标识符是全局标识符(全局变量)。

<!--[if !supportLists]--&gt5. <!--[endif]--&gt在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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值