`
azheng270
  • 浏览: 92320 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

存储过程的较详细定义和解释

阅读更多
存储过程
sql语句执行的时候要先编译,然后执行。存储过程就是编译好了的一些sql语句。应用程序需要用的时候直接调用就可以了,所以效率会高。

存储过程介绍

存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。

使用存储过程有以下的优点:

*存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

*可保证数据的安全性和完整性。

#通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。

#通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。

*再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。

*可以降低网络的通信量。

*使体现企业规则的运算程序放入数据库服务器中,以便:

#集中控制。

#当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用程序。企业规则的特点是要经常变化,如果把体现企业规则的运算程序放入应用程序中,则当企业规则发生变化时,就需要修改应用程序工作量非常之大(修改、发行和安装应用程序)。如果把体现企业规则的运算放入存储过程中,则当企业规则发生变化时,只要修改存储过程就可以了,应用程序无须任何变化。

数据库存储过程的实质就是部署在数据库端的一组定义代码以及SQL。

利用SQL的语言可以编写对于数据库访问的存储过程,其语法如下:

CREATEPROC[EDURE]procedure_name[;number]
[
{@parameterdata_type}
][VARYING][=default][OUTPUT]
]
[,...n]
[WITH 
{
RECOMPILE 
|ENCRYPTION 
|RECOMPILE,ENCRYPTION
}
]
[FORREPLICATION]
AS
sql_statement
[...n]

[]内的内容是可选项,而()内的内容是必选项,

例:若用户想建立一个删除表tmp中的记录的存储过程Select_delete可写为:

CreateProcselect_delAs 
Deletetmp 

例:用户想查询tmp表中某年的数据的存储过程

createprocselect_query@yearintas
select*fromtmpwhereyear=@year

在这里
@year是存储过程的参数

例:该存储过程是从某结点n开始找到最上层的父亲结点,这种经常用到的过程可以由存储过程来担当,在网页中重复使用达到共享。
空:表示该结点为顶层结点
fjdid(父结点编号) 
结点n非空:表示该结点的父亲结点号
dwmc(单位名称)

CREATEprocsearch_dwmc@dwidoldint,@dwmcresultvarchar(100)output
as 
declare@stopint
declare@resultvarchar(80)
declare@dwmcvarchar(80)
declare@dwidint
setnocounton
set@stop=1
set@dwmc=""
select@dwmc=dwmc,@dwid=convert(int,fjdid)fromjtdwwhereid=@dwidold 
set@result=rtrim(@dwmc)
if@dwid=0 
set@stop=0
while(@stop=1)and(@dwid<>0)
begin
set@dwidold=@dwid
select@dwmc=dwmc,@dwid=convert(int,fjdid)fromjtdwwhereid=@dwidold
if@@rowcount=0 
set@dwmc=""
else
set@result=@dwmc+@result
if(@dwid=0)or(@@rowcount=0) 
set@stop=0
else
continue
end
set@dwmcresult=rtrim(@result)

使用execpro
-name[pram1pram2.....]
分享到:
评论

相关推荐

    数据可存储过程和触发器定义和使用

    本文将深入探讨这两个概念,以及如何在实际环境中定义和使用它们。 首先,存储过程是一种预编译的SQL语句集合,它可以封装一系列的数据库操作,并作为一个单元进行调用。存储过程有以下优点: 1. **提高性能**:...

    sql存储过程学习,详细的解说存储过程的语法,结构和用法。

    SQL存储过程是数据库管理系统中的一种重要工具,它允许程序员和数据库管理员预先定义并存储一系列复杂的SQL语句,以便后续调用。存储过程不仅能够提高数据处理的效率,还能增强数据库的安全性和可维护性。以下是对...

    实验六:创建存储过程和触发器1

    - **参数定义**:可以为存储过程定义输入、输出或输入输出参数,以传递数据。 - **执行**:通过`EXEC`或`EXECUTE`命令调用存储过程,传递参数值。 在实验中,你需要创建四个不同的存储过程: - **MyProc1**:...

    oracle定义存储过程

    这个文档对初学者来说是非常实用的,简单思路清晰,这里包括了 定义存储过程、调用带有输入输出参数的存储过程、存储过程异常处理、存储过程中事务处理的例子,很直观,

    实验9 存储过程的创建和使用

    为了了解存储过程的详细信息,可以使用系统存储过程`sp_help`和`sp_helptext`。前者提供存储过程的基本信息,而后者显示其定义的源代码。最后,实验涵盖了修改(`ALTER PROC`)和删除(`DROP PROC`)存储过程的语句,这...

    oracle存储过程超详细使用手册

    通过阅读“Oracle存储过程超详细使用手册.pdf”,你将能够深入了解这些概念,并学习如何在实际项目中有效利用存储过程,提升数据库管理效率和应用程序性能。该手册可能还会包含示例、最佳实践、错误处理策略以及常见...

    ORACLE存储过程中定义数组并且判断某值是否在数组中.txt

    ORACLE存储过程中定义数组并且判断某值是否在数组中。有例子可執行、 、有例子可執行、

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    在存储过程定义中,可以通过“ins_”前缀来声明输入参数。此外,还可以使用DECLARE关键字声明局部变量,如s_age和state。 6. 删除存储过程 报告最后提到的“drop PROCEDURE insert_student_condition_user;”语句...

    第8章SQL数据库+存储过程、触发器和用户定义函数.ppt

    第8章SQL数据库+存储过程、触发器和用户定义函数.ppt第8章SQL数据库+存储过程、触发器和用户定义函数.ppt第8章SQL数据库+存储过程、触发器和用户定义函数.ppt

    oracle存储过程超详细使用手册+oracle详细讲解(综合下载).

    这个超详细使用手册和详细讲解将深入探讨存储过程的概念、创建、调用、优化及其在实际应用中的价值。 1. **存储过程的概念** 存储过程是预编译的SQL和PL/SQL语句集合,存储在数据库服务器中。它们可以接收参数,...

    SqlServer存储过程及调试指南

    1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作数据库中的重要对象,对于设计良好的数据库应用程序...

    数据库的存储过程

    在存储过程中,可以包含多种SQL语句,如SELECT、INSERT、UPDATE、DELETE等,以及流程控制语句(如IF、CASE、WHILE等)和变量定义。 三、常用方法的实现 1. **输入参数**:存储过程可以接受输入参数,用于在执行...

    存储过程扩展学习

    在SQL Server中,存储过程分为不同种类,包括用户定义的存储过程、系统存储过程、临时存储过程以及扩展存储过程。 1. **用户定义的存储过程**:由开发人员或DBA创建,可以根据业务需求定制各种复杂操作,如数据处理...

    解密SQL Server2000存储过程(可以选择存储过程查询)

    SQL Server 2000是微软公司推出的一款关系...以上是对SQL Server 2000存储过程的详细解释,包括创建、调用、管理和优化等方面的知识点。了解并掌握这些内容,将有助于更好地利用存储过程提升数据库应用的效率和安全性。

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和高效的数据管理能力深受企业青睐。...Oracle 存储过程详解.doc文档可能包含了更多详细的步骤和示例,建议详细阅读,以深化对这一主题的理解。

    过程化SQL和存储过程.docx

    过程化 SQL 和存储过程 过程化 SQL 是一种扩展的 SQL 语言,具有过程化的编程特点,能够实现复杂的逻辑操作和数据处理。过程化 SQL 程序由块组成,每个块都可以包含变量、常量、流程控制语句和错误处理语句等元素。...

    在VB6.0中调用SQL Server的存储过程.pdf

    在VB6.0中调用SQL Server的存储过程是VB开发者经常遇到的问题,本文将详细介绍如何在VB6.0中调用SQL Server的存储过程,并对存储过程的优点和使用方法进行了详细的解释。 首先,存储过程是一种封装方法,用于重复...

    存储过程总结很全很详细

    存储过程作为数据库开发中的重要组件,不仅提升了代码的执行效率和安全性,还大大简化了应用程序的复杂度,是实现高效数据库管理和业务逻辑处理的关键技术之一。理解和掌握存储过程的创建和使用方法,对于任何数据库...

Global site tag (gtag.js) - Google Analytics