`
- 浏览:
92974 次
- 性别:
- 来自:
杭州
-
存储过程
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.....]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文将深入探讨这两个概念,以及如何在实际环境中定义和使用它们。 首先,存储过程是一种预编译的SQL语句集合,它可以封装一系列的数据库操作,并作为一个单元进行调用。存储过程有以下优点: 1. **提高性能**:...
SQL存储过程是数据库管理系统中的一种重要工具,它允许程序员和数据库管理员预先定义并存储一系列复杂的SQL语句,以便后续调用。存储过程不仅能够提高数据处理的效率,还能增强数据库的安全性和可维护性。以下是对...
- **参数定义**:可以为存储过程定义输入、输出或输入输出参数,以传递数据。 - **执行**:通过`EXEC`或`EXECUTE`命令调用存储过程,传递参数值。 在实验中,你需要创建四个不同的存储过程: - **MyProc1**:...
这个文档对初学者来说是非常实用的,简单思路清晰,这里包括了 定义存储过程、调用带有输入输出参数的存储过程、存储过程异常处理、存储过程中事务处理的例子,很直观,
为了了解存储过程的详细信息,可以使用系统存储过程`sp_help`和`sp_helptext`。前者提供存储过程的基本信息,而后者显示其定义的源代码。最后,实验涵盖了修改(`ALTER PROC`)和删除(`DROP PROC`)存储过程的语句,这...
通过阅读“Oracle存储过程超详细使用手册.pdf”,你将能够深入了解这些概念,并学习如何在实际项目中有效利用存储过程,提升数据库管理效率和应用程序性能。该手册可能还会包含示例、最佳实践、错误处理策略以及常见...
ORACLE存储过程中定义数组并且判断某值是否在数组中。有例子可執行、 、有例子可執行、
在存储过程定义中,可以通过“ins_”前缀来声明输入参数。此外,还可以使用DECLARE关键字声明局部变量,如s_age和state。 6. 删除存储过程 报告最后提到的“drop PROCEDURE insert_student_condition_user;”语句...
第8章SQL数据库+存储过程、触发器和用户定义函数.ppt第8章SQL数据库+存储过程、触发器和用户定义函数.ppt第8章SQL数据库+存储过程、触发器和用户定义函数.ppt
这个超详细使用手册和详细讲解将深入探讨存储过程的概念、创建、调用、优化及其在实际应用中的价值。 1. **存储过程的概念** 存储过程是预编译的SQL和PL/SQL语句集合,存储在数据库服务器中。它们可以接收参数,...
1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作数据库中的重要对象,对于设计良好的数据库应用程序...
在存储过程中,可以包含多种SQL语句,如SELECT、INSERT、UPDATE、DELETE等,以及流程控制语句(如IF、CASE、WHILE等)和变量定义。 三、常用方法的实现 1. **输入参数**:存储过程可以接受输入参数,用于在执行...
在SQL Server中,存储过程分为不同种类,包括用户定义的存储过程、系统存储过程、临时存储过程以及扩展存储过程。 1. **用户定义的存储过程**:由开发人员或DBA创建,可以根据业务需求定制各种复杂操作,如数据处理...
SQL Server 2000是微软公司推出的一款关系...以上是对SQL Server 2000存储过程的详细解释,包括创建、调用、管理和优化等方面的知识点。了解并掌握这些内容,将有助于更好地利用存储过程提升数据库应用的效率和安全性。
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和高效的数据管理能力深受企业青睐。...Oracle 存储过程详解.doc文档可能包含了更多详细的步骤和示例,建议详细阅读,以深化对这一主题的理解。
过程化 SQL 和存储过程 过程化 SQL 是一种扩展的 SQL 语言,具有过程化的编程特点,能够实现复杂的逻辑操作和数据处理。过程化 SQL 程序由块组成,每个块都可以包含变量、常量、流程控制语句和错误处理语句等元素。...
SAP HANA为存储过程提供了内置的调试功能,这使得开发者能够方便地验证逻辑的正确性,追踪代码执行流程,检查变量值变化,从而对程序中的错误进行定位和修正。 SAP HANA中的存储过程通常是用SQLScript编写的,这是...
在VB6.0中调用SQL Server的存储过程是VB开发者经常遇到的问题,本文将详细介绍如何在VB6.0中调用SQL Server的存储过程,并对存储过程的优点和使用方法进行了详细的解释。 首先,存储过程是一种封装方法,用于重复...