pl/sql存储过程,函数,游标和触发器是什么?异常处理什么意思?

发布网友 发布时间:2022-04-23 01:06

我来回答

1个回答

热心网友 时间:2022-04-08 01:07

存储过程:存储过程是一组予编译的SQL语句
它的优点:1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
   2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
  3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
       4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

函数:函数是预先定义的功能块(由代码组成)。我们编写函数的目的通常是为了反复调用它(提高代码的复用性)。

游标:游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录 的结果集中每次提取一条记录的机制。游标总是与一条T_SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。

触发器:触发器是一种特殊的存储过程,它在试图更改触发器所保护的数据时自动执行。它被定义为在对表或视图发出 UPDATE、INSERT 或 DELETE 语句时自动执行,在有数据修改时自动强制执行其业务规则。触发器可以扩展 SQL Server 约束、默认值和规则的完整性检查逻辑,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。

异常处理:异常处理功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。
  异常可以由公共语言运行库 (CLR)、第三方库或使用 throw 关键字的应用程序代码生成。

  异常具有以下特点:
  1.在应用程序遇到异常情况(如被零除情况或内存不足警告)时,就会产生异常。
  2.发生异常时,控制流立即跳转到关联的异常处理程序(如果存在)。
  3.如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误信息。
  4.可能导致异常的操作通过 try 关键字来执行。
  5.异常处理程序是在异常发生时执行的代码块。在 C# 中,catch 关键字用于定义异常处理程序。
  6.程序可以使用 throw 关键字显式地引发异常。
  7.异常对象包含有关错误的详细信息,其中包括调用堆栈的状态以及有关错误的文本说明。
  8.即使引发了异常,finally 块中的代码也会执行,从而使程序可以释放资源。

  异常处理理论上有两种基本模型.
  一种称为"终止模型"(它是Java与C++所支持的模型).在这种模型中,将假设错误非常关键,将以致于程序无法返回到异常发生的地方继续执行.一旦异常被抛出,就表明错误已无法挽回,也不能回来继续执行.
  另一种称为"恢复模型".意思是异常处理程序的工作是修正错误,然后重新尝试调动出问题的方法,并认为的二次能成功.
  对于恢复模型,通常希望异常被处理之后能继续执行程序.在这种情况下,抛出异常更像是对方法的调用--可以在Java里用这种方法进行配置,以得到类似恢复的行为.(也就是说,不是抛出异常,而是调用方法修正错误.)或者,把try块放在while循环里,这样就可以不断的进入try块,直到得到满意的结果.虽然恢复模型开始显得很吸引人,并且人们使用的操作系统也支持恢复模型的异常处理,但程序员们最终还是转向了使用类似"终止模型"的代码.因为:处理程序必须关注异常抛出的地点,这势必要包含依赖于抛出位置的非通用性代码.这增加了代码编写和维护的困难,对于异常可能会从许多地方抛出的大型程序来说,更是如此.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com