TechTarget中国网站推荐

Oracle11g: PL/SQL基础

2008-9-8  选择字号:  | |
打印本文章
【TechTarget中国原创】PL/SQL是一种反应迟钝的程序语言,像SQL一样。虽然这种语言很迟钝,但是有很多惯例对于人们如何编写密码很适用。大多数人选择大写字母、小写字母、题目或者是大小写混合。在这些方法中没有一种标准可以遵循。

【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的基础知识。

还没有登录? 阅读全文请先登录或注册
用户名:(请填写您的E-mail做为登录账号)
  • 获取最新的IT业界资讯、市场动态、行业趋势等独家原创内容。
  • 分享国内外技术专业人士提供的技巧经验。
  • 利用专注IT的技术资源中心,不断更新专业知识。
  • 享受白皮书、Webcast等系列特色增值服务。
  • 免费参加TT中国举办的各种会员活动。
  • 更多的精彩服务,在不断开发中……
用户名:(请填写您的E-mail)
密 码:
 永久登录
请输入您的登录email:
相关的新闻
本文只是一个例子,大家可以把它封装成一个通用函数进行实用。大家在试的时候将里面相应的其它进制的数值换成自己的数据就可以了……
PL/SQL是由构造程序、统计数据、模块性以及异常管理等建模观念发展而来的。它扩展了ADA程序语言。ADA扩展了Pascal程序语言,包括配置、比较运算符以及单引字符串分隔符。
随便在什么地方,只要是BEGIN和END之间,就可以使用DBMS_OUTPUT.PUT_LINE(output); 而这有个问题,就是使用该函数最多只可以显示255个字符,否则缓冲区会溢出。
个人认为ORACLE实在不适合来讨论算法,所以只挑了一个比较简单的算法进行计算,多项式为:PI=2+1/3*(2+2/5*(2+3/7*(2+…(2+N/(2N+1))…))),上一篇之所以给出……
经常可以碰到Oracle的内部错误ORA-600和ORA-7445,这个PL/SQL的内部错误还是第一次碰到。在11g中建立10.1或10.2基表的物化视图,就会引发这个错误。
本篇文章主要介绍SQL Server数据存储的物理对象和原理,包括SQL Server 2005和2008里的物理数据存储、SQL Server 2008数据类型(即Datetime、字符串、自定义及等)、在SQL Server数据库中加强数据的完整性……
本文为SQL Server 2008初学者指南,主要介绍SQL Server2008 T-SQL支持的基本元素和基本操作。
本篇技术专题主要内容包括SQL Server整合、SQL Server数据库设计灾难、SQL Server数据库查询设计以及SQL Server数据库同步、复制、报告显示。
最新更新
专家答疑
技巧
Brian Peasland
我在使用这个工具的时候就出现了以上的错误。由于出现了这个错误,我就没有顺利地完成备份。你能告诉我是什么原因吗?
Rudy Limeback
我想把这些日期按照月份聚集在一起,这样我们就能查看每个售货员每个月的销售量了。我怎么才能将这些月份的日期聚集在一起呢?
Maria Anderson
我得到了一个错误信息,如“DIM-00019:创建服务错误。”我用你寄给我的解决方案解决这一问题,即:“手动创建和启动服务。”你能告诉我如何手动安装该服务吗?