codecamp

PL/SQL 基本语法

在本章中,我们将学习PL/SQL的基本语法,PL/SQL是块结构语言; PL/SQL程序划分成几个部分,并在每个部分中写入逻辑代码块。每个块由三个子部分组成 
  • 声明部分 - 此部分是以关键字DECLARE开头。这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素。
  • 可执行命令部分 - 此部分包含在关键字BEGINEND之间,这是一个强制性部分。它由程序的可执行PL/SQL语句组成。它应该有至少一个可执行代码行,它可以只是一个NULL命令,表示不执行任何操作。
  • 异常处理部分 - 此部分以关键字EXCEPTION开头。这是一个可选部分,它包含处理程序中错误的异常。

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

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

Hello World示例

DECLARE 
   message  varchar2(20):= 'Hello, World!'; 
BEGIN 
   dbms_output.put_line(message); 
END; 
/
SQL

END;行表示PL/SQL块的结尾。要从SQL命令行运行代码,需要在代码的最后一行之后键入/字符。当上述代码在SQL提示符下执行时,它会产生以下结果 -

Hello World  

PL/SQL procedure successfully completed.
Shell

PL/SQL标识符

PL/SQL标识符是常量,变量,异常,过程,游标和保留字。标识符包括一个字母,可选地后跟多个字母,数字,美元符号,下划线和数字符号,不得超过30个字符。

默认情况下,标识符不区分大小写。例如,可以使用integerINTEGER来表示一个数值。 不能使用保留关键字作为标识符。

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

当上述代码在SQL *Plus提示符下执行时,它会产生以下结果 -

Hello World

PL/SQL procedure successfully completed.
SQL

PL/SQL程序单元

PL/SQL单元是以下任何一个 -

  • PL/SQL块
  • 函数
  • 包体
  • 过程
  • 触发器
  • 类型
  • 类型体

这些单元将在接下来的章节中讨论和学习。

 


PL/SQL 环境安装设置
PL/SQL 数据类型
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }