Plsql 简明教程

PL/SQL - Basic Syntax

在本章中,我们将讨论 PL/SQL 的基本语法,这是一种 block-structured 语言;这意味着 PL/SQL 程序被划分为逻辑代码块并编写在这些逻辑代码块中。每个块包含三个子部分:−

S.No

Sections & Description

1

Declarations 此部分以关键字 DECLARE 开头。这是一个可选部分,它定义了程序中要使用的所有变量、游标、子程序和其他元素。

2

Executable Commands 此部分包含在关键字 BEGINEND 之间,并且是一个强制部分。它包含程序的可执行 PL/SQL 语句。它应该至少包含一行可执行代码,这可能只是一个 NULL command ,表示什么都不应该执行。

3

Exception Handling 此部分以关键字 EXCEPTION 开头。此可选部分包含 exception(s) 来处理程序中的错误。

每个 PL/SQL 语句都以分号 (;) 结尾。PL/SQL 块可以使用 BEGINEND 嵌套在其他 PL/SQL 块内。以下是 PL/SQL 块的基本结构:−

DECLARE
   <declarations section>
BEGIN
   <executable command(s)>
EXCEPTION
   <exception handling>
END;

The 'Hello World' Example

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.

The PL/SQL Identifiers

PL/SQL 标识符是常量、变量、异常、过程、游标和保留字。标识符由一个字母(后面可以跟更多字母、数字、美元符号、下划线和数字符号)组成,并且不应超过 30 个字符。

默认情况下, identifiers are not case-sensitive 。因此,你可以使用 integer 或者 INTEGER 来表示数值。你不能将保留关键字用作标识符。

The PL/SQL Delimiters

分隔符是具有特殊含义的符号。以下是 PL/SQL 中的分隔符列表:

Delimiter

Description

+, -, *, /

Addition, subtraction/negation, multiplication, division

%

Attribute indicator

'

Character string delimiter

.

Component selector

(,)

Expression or list delimiter

:

Host variable indicator

,

Item separator

"

Quoted identifier delimiter

=

Relational operator

@

Remote access indicator

;

Statement terminator

:=

Assignment operator

Association operator

*

*

Concatenation operator

**

Exponentiation operator

<<, >>

标签分隔符(开始和结束)

/, /

多行注释分隔符(开始和结束)

--

Single-line comment indicator

..

Range operator

<, >, ⇐, >=

Relational operators

<>, '=, ~=, ^=

不同版本的 NOT EQUAL

The PL/SQL Comments

程序注释是可以包括在你所编写的 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 提示符下执行时,它会生成以下结果:

Hello World

PL/SQL procedure successfully completed.

PL/SQL Program Units

PL/SQL 单元是以下任一项:

  1. PL/SQL block

  2. Function

  3. Package

  4. Package body

  5. Procedure

  6. Trigger

  7. Type

  8. Type body

下文章节将讨论这些单元中的每个单元。