在本章中,我们将学习pl/sql的基本语法,pl/sql是块结构语言; pl/sql程序划分成几个部分,并在每个部分中写入逻辑代码块。每个块由三个子部分组成 –
- 声明部分 – 此部分是以关键字
declare
开头。这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素。 - 可执行命令部分 – 此部分包含在关键字
begin
和end
之间,这是一个强制性部分。它由程序的可执行pl/sql语句组成。它应该有至少一个可执行代码行,它可以只是一个null
命令,表示不执行任何操作。 - 异常处理部分 – 此部分以关键字
exception
开头。这是一个可选部分,它包含处理程序中错误的异常。
每个pl/sql语句以分号(;
)结尾。 使用begin
和end
可以将pl/sql块嵌套在其他pl/sql块中。 以下是pl/sql块的基本结构 –
declare <declarations section> begin <executable command(s)> exception <exception handling> end;
hello world示例
declare message varchar2(20):= 'hello, world!'; begin dbms_output.put_line(message); end; /
end;
行表示pl/sql块的结尾。要从sql命令行运行代码,需要在代码的最后一行之后键入/字符。当上述代码在sql提示符下执行时,它会产生以下结果 –
hello world pl/sql procedure successfully completed.
pl/sql标识符
pl/sql标识符是常量,变量,异常,过程,游标和保留字。标识符包括一个字母,可选地后跟多个字母,数字,美元符号,下划线和数字符号,不得超过30
个字符。
默认情况下,标识符不区分大小写。例如,可以使用integer
或integer
来表示一个数值。 不能使用保留关键字作为标识符。
pl/sql分隔符
分隔符是具有特殊含义的符号。以下是pl/sql中的分隔符列表 –
分隔符 | 描述 |
---|---|
+ ,- , * , / |
加法,减法/负,乘法,除法 |
% |
属性绑定 |
' |
字符串分隔符 |
. |
组件选择符 |
(,) |
表达式或列表分隔符 |
: |
主机变量指示符 |
, |
项目分隔符 |
" |
引用标识符分隔符 |
= |
关系运算符 |
@ |
远程访问指示符 |
; |
声明或语句终止符 |
:= |
赋值运算符 |
=> |
关联运算符 |
ιι | 连接运算符 |
** |
指数运算符 |
<< , >> |
标签分隔符(开始和结束) |
/* , */ |
多行注释分隔符(开始和结束) |
-- |
单行注释指示符 |
.. |
范围运算符 |
< , > , <= , >= |
关系运算符 |
<> , '= , ~= , ^= |
不同版本的”不等于”运算符 |
pl/sql注释
程序注释可以在编写的pl/sql代码中包含的说明性文字,并帮助其他人阅读源代码。所有编程语言都允许某种形式的注释。
pl/sql支持单行和多行注释。注释中的所有字符都被pl/sql编译器忽略。 pl/sql单行注释以分隔符开头 --
(双连字符),多行注释由/*
和*/
括起来。
declare -- variable declaration message varchar2(20):= 'hello, world!'; begin /* * pl/sql executable statement(s) */ dbms_output.put_line(message); end; /
当上述代码在sql *plus提示符下执行时,它会产生以下结果 –
hello world pl/sql procedure successfully completed.
pl/sql程序单元
pl/sql单元是以下任何一个 –
- pl/sql块
- 函数
- 包
- 包体
- 过程
- 触发器
- 类型
- 类型体