Oracle11g: PL/SQL基础

日期: 2008-09-07 作者:Michael McLaughlin翻译:April 来源:TechTarget中国 英文

PL/SQL是一种反应迟钝的程序语言,像SQL一样。虽然这种语言很迟钝,但是有很多惯例对于人们如何编写密码很适用。大多数人选择大写字母、小写字母、题目或者是大小写混合。在这些方法中没有一种标准可以遵循。

  Oracle PL/SQL块结构   PL/SQL是由构造程序、统计数据、模块性以及异常管理等建模观念发展而来的。它扩展了ADA程序语言。ADA扩展了Pascal程序语言,包括配置、比较运算符以及单引字符串分隔符。   PL/SQL支持两种程序:一种是匿名块程序,另一种是指定块程序。

两种程序都有说明、实施和异常处理部分或者块。匿名块支持batch脚本,指定块传送存储程序单元。   匿名块P……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

PL/SQL是一种反应迟钝的程序语言,像SQL一样。虽然这种语言很迟钝,但是有很多惯例对于人们如何编写密码很适用。大多数人选择大写字母、小写字母、题目或者是大小写混合。在这些方法中没有一种标准可以遵循。

  Oracle PL/SQL块结构

  PL/SQL是由构造程序、统计数据、模块性以及异常管理等建模观念发展而来的。它扩展了ADA程序语言。ADA扩展了Pascal程序语言,包括配置、比较运算符以及单引字符串分隔符。

  PL/SQL支持两种程序:一种是匿名块程序,另一种是指定块程序。两种程序都有说明、实施和异常处理部分或者块。匿名块支持batch脚本,指定块传送存储程序单元。

  匿名块PL/SQL程序基本原型为:
 


[DECLARE]
    declaration_statements
BEGIN
    execution_statements
[EXCEPTION]
     exception_handling_statements
END;
/

  如同原型中的显示的一样,PL/SQL要求只能是匿名块程序实施部分。实施部分以BEGIN语句开始、以EXCEPTION块开始或者是该程序的END语句停顿。匿名PL/SQ块以一个分号结束。然后迅速执行这一块。

  说明部分包括可变定义和说明、自定义PL/SQL定义、光标定义、嵌套匿名PL/SQL块或者叫本地或存储指定PL/SQL块。异常部分包括错误处理短语、这些语句能利用所有和实施部分一样的条款。最简单的PL/SQL块不执行任何命令。你一定要在任意实施块里至少有一个语句,甚至是一个NULL语句。Forward slash实施一个匿名的PL/SQL块。下面列举了大多数基本的匿名块程序:


BEGIN
   NULL;
END;

  你必须让SQL*Plus SERVEROUTPUT变量将内容打印到控制台。hello_world.sql将信息打印到控制台:


SET SERVEROUTPUT ON SIZE 1000000
BEGIN
 dbms_output.put_line(’Hello World.’);
END;
/

  SQL*Plus SERVEROUTPUT环境变量打开了一个输出缓冲器,DBMS_ OUTPUT.PUT_LINE()函数打印了一行输出量。所有的说明、语句和块都是以分号结束。

  SQL*Plus支持在交互的控制台使用替换变量,它是以&.开始的。替换变量由长度可变的字符串或者在数字组成。你应该在说明块里给动态值赋值,如替换变量。以下程序详细说明了变量以及给它赋值:


DECLARE
  my_var VARchar2(30);
BEGIN
  my_var := ’&input’;
  dbms_output.put_line(’Hello ’|| my_var );
END;

/

  PL/SQL里的分配符是由冒号加等号(:=)组成。PL/SQL字符文字是由单引号划分。日期、数字和字符文字在第三章里已经提到。你运行Oracle SQL*Plus中匿名块。Oracle SQL*Plus 中@符号负载并且执行一个脚本文件。默认文件的扩展名为.sql。以下为替换.sql文件:


SQL> @substitution.sql
Enter value for input: Henry Wadsworth Longfellow
old    3:     my_var VARchar2(30) := ’&input’;
new    3:     my_var VARchar2(30) := ’Henry Wadsworth Longfellow’;
Hello Henry Wadsworth Longfellow

  PL/SQL过程顺利完成。

  以原先的指令开始的行接受你的程序的替换字符和新的指令运行时间替换。给字符串赋值对于处理异常情况来说太大了。异常块管理出现的错误。普通异常情况处理者能处理任意发生的错误。你利用一个WHEN块捕捉每一个出现的异常情况(带有错误处理者)——其他。

  下面的异常的.sql程序说明当字符串对于变量太长时异常块管理如何错误。

  匿名块改变了从30个字符串到10个字符串的定义。诗人的名字对于目标参数太长。给该参数赋值时出现了异常。控制台输出显示处理了和出现的异常。

  你还能拥有:(a)在匿名块执行部分里嵌套匿名块程序;(b)在说明部分里指定块程序,该程序包括嵌套程序的相同类型;并且(c)存储指定程序。

  最远的规划块管理整个程序流,而嵌套规划块管理它们的次级规划流。每个匿名或者指定块规划单元够包含异常部分。当一个本地异常处理器不能处理异常,将异常情况置入包含块和直到进入SQL*Plus环境里。

  无论是从本地投放还是PL/SQL块投放,对管理错误包都是一样的。在投入的第一列和传送的最后一列出现了错误,这同样也叫做包。你已经开发PL/SQL块程序的基本结构和错误管理。块结构是从事PL/SQL的基础知识。

翻译

April
April

相关推荐