ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 编写PL/SQL代码

编写PL/SQL代码

原创 Linux操作系统 作者:adrain_001 时间:2012-02-22 10:00:20 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: PL/SQL集合用法
请登录后发表评论 登录
全部评论

注册时间:2012-02-13

  • 博文量
    113
  • 访问量
    259854