PLSQL 第一部分.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一部分:PL/SQL块Oracle PL/SQL在2011年已经度过了22个春秋,我知道这些是因为我查看了Oracle PL/SQL所出版的用户指南;这本用户指南是在1989年为了PL/SQL1.0版本而出版的。当时我在Oracle公司工作,建设曾经在美国Oracle应用的自动化销售工具:sales force。当时我已经在SQL的3.0版本里应用了PL/SQL,但是随着Oracle6的发行,PL/SQL随之成为了独立的语言开发应用程序。三年后,我写了我的第一本关于PL/SQL的书,从那以后我努力学习PL/SQL,写了许许多多的PL/SQL代码,并且写出了在同类数据库开发语言中最好的程序。当然,不仅仅是我。从Oracle PL/SQL发行以来,全世界成千上万的开发者在此基础上已经开发了数量庞大的应用程序。最令人欣慰的是,这种对PL/SQL新学者良好的影响保持着一个稳定的趋势。事实上,随着印度、中国以及其他技术强国的出现,我已经看到了在学习和应用PL/SQL的崭新一代。为了帮助新学者能够更好的学好这门语言,Oracle杂志委托我写一系列关于PL/SQL的文章,如大家所见,这是第一篇。即使你是PL/SQL开发者的老手,你也可以很方便的在这一系列文章中复习关于PL/SQL基础上的一些知识。或许你是PL/SQL的新手,或许你已经有一些开发经验并对SQL非常熟悉,但是我的目的始终如一,就是为了让你们尽快的掌握这门语言。什么是PL/SQL?为了回答这个问题,你必须记住,你所访问的每个网站,你所运行的每个程序,都是由堆栈构建的。在堆栈的顶端是用户直接接触的显示层,比如显示屏或者互动装置。在堆栈的低端是与硬件交流的机器语言。而在这个堆栈的中间你会发现一些便于我们存储或者处理大量复杂数据的数据库和软件。如果你要写在Oracle数据库上的应用程序,你必须运行SQL在数据库上检索和修改数据。然而SQL不能实现所有我们在应用程序中需要的业务逻辑和最终用户功能。所以,PL/SQL应运而生。PL/SQL代表Procedural Language/Structured Query Language。PL/SQL提供了一系列用块来组织的程序命令,大大的补充和扩展了SQL.当然你可以在不使用PL/SQL的情况下在SQL和Oracle数据库上创建应用程序。不过,利用PL/SQL去运行数据库的特殊操作,尤其是SQL语句的运行,能够拥有很多的优势。例如与SQL更好的融合、通过减少网络流量提高运行效率、更好的移植性。因此,许多应用程序的代码能够同时支持SQL语句和PL/SQL块的执行,以求最大化的提高性能,提高这些应用程序的可维护性。建立PL/SQL程序块PL/SQL是一种块状结构语言。一个PL/SQL块可由4个关键词来定义DECLARE,BEGIN,EXCEPTION,END。每个块由三个部分组成:1·声明:用来声明在块中所用到的变量、常量、和其他代码元素。2·运行:当块运行时所要运行的语句。3·异常捕捉:一种用来捕捉各种异常的特殊结构模块。在这三个部分中,只有运行部分是必须的。在一个块中,你不必要去声明或者捕捉任何东西。每个块自身就是一个可执行的语句,所以你可以在块中嵌套另外一个块。下面是一些例子:·在“Hello World!”中包含了一个叫DBMS_OUTPUT.PUT_LINE的程序用来在显示器上显示文本:BEGINDBMS_OUTPUT.put_line (Hello World!);END;用来命名块的函数和程序将会在接下来关于包的文章中有更详细的阐述。简单来说,包是多个函数和程序的集合。Oracle提供或者内置了许多的PL/SQL包。接下来的这个例子用VARCHAR2声明了一个最大能包含100个字符的字符串用来存储”hello world!”。DBMS_OUTPUT.PUT_LINE接下来会接收一个变量而不是上例中的字符串。DECLAREl_messageVARCHAR2 (100) := Hello World!;BEGINDBMS_OUTPUT.put_line (l_message);END;注意在上例中我将变量命名为l_message。我将会用l_前缀来命名局部变量—一种在块内定义的变量,用g_前缀来命名全局变量—在包内定义的变量。·接下来的这个例子添加了一个用来捕捉异常的exception的部分,异常由SQLERRM函数返回(由oracle提供)。DECLAREl_message VARCHAR2 (100) := Hello World!;BEGINDBMS_OUTPUT.put_line (l_message);EXCEPTION WHEN OTHERS THENDBMS_OUTPUT.put_line (SQLERRM);END;·接

文档评论(0)

bbnm58850 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档