Procedure 存储过程

本文非原创

存储过程是数据库当中最高级的应用程序,可以传递参数和返回相应的值。

1.分为:系统存储过程和自定义存储过程
定义:它是由一系列的预编译的SQL语句和流程控制语句组成的,
具有参数的传递、条件的判断、变量的声明、返回处理结果,
并扩充了SQL语句的功能。

优点:(1)使用它可以比单独使用SQL语句实现更复杂的功能。

(2)它的执行速度要比普通的SQL语句执行的速度要快。

缺点:(1)不能实现复杂的逻辑操作,因为它不能提供复杂的程序设计。

(2)存储过程创建后,管理较困难,需要记住每个过程的功能。

2.创建存储过程:

创建方式: A.用企业管理器 B.使用代码建立

(1)使用语言创建:

语法: create procedure 存储过程名 [,整数]
[@参数 数据类型] [varying] [=默认值] [output] [n]
[with {recompile / encryption /recompile,encryption}]

例:(1)create procedure st_cus
as
select 顶单好,姓名,踪迹呢,定货日期,踪迹呢
from AA as a join orders as b on a.客户编号=b.可湖编号
where b.货品名称=‘desk‘
go
execute st_cus
go

(2)create procedure st_ord
@goodsname varchar(20)
as
select * from AA as a join orders as b
on a.客户编号=b.可湖编号
where b.货品名称 [email protected]
go
execute st_ord‘desk‘
go

说明:1. varying:该参数指定作为输出参数,支持的结果集适用于游标。

2. output:定义一个输出参数,将处理后的信息返回给调用者。

3. 参数:所有数据类型(包括text,ntext,image)均可以作为
存储过程的参数;但cursor数据类型只能用于output
参数,如果指定数据类型为cursor,则必须同时指定
varying和output参数,对cursor型参数个数无限制。

4.局部临时过程:只能创建该过程的连接使用,在会话结束时,
自动除去,加“#”。

全局临时过程:可以由所有连接使用,在使用该过程的最后
一个会话结束时,一般情况是创建该过程的
会话结束,加“##”。

注意:不能把 create procedure 和其它的SQL语句组合
到一个批处理中,不要和系统重名。

执行存储过程:

存储过程的执行可以由应用程序来调用执行,用户可以声明变量和有条件的执行。

1.执行时可以用execute来执行:

语法:execute {[@整数变量=] 存储过程名 [;标识号]}
[@参数名=值/@变量 [output/default]] [,……n]
[with recompile]

例:(1)create procedure st_count
@goodname varchar(20),
@maxdata int output,
@avgprice int output
as
select @maxdata=max(哭春量),@avgprice=avg(价格)
from goods where 货品名称[email protected]
go
declare @aa varchar(20)
declare @bb int
declare @cc int
select @aa=‘desk‘
execute st_count @aa,@bb output,@cc output
select ‘货品名称‘[email protected],‘最大货品库存量:‘+
cast(@bb as char(6)),‘货品平均价格:‘+cast(@cc as char(4))

(2) create procedure egg_pro
@name varchar(23)=‘hh‘,
@max int output,
@min int output
as
select @max=max(egg_zhong),@min=avg(egg_jia)from egg
where [email protected]
go
declare @aa int,@bb int
execute egg_pro @[email protected] output,@[email protected] output,@name=default
print @aa
print @bb

说明:1.整数变量是用来保存过程的返回状态,在使用之前需要声明。

2.参数名:执行时参数赋值的顺序要符合,创建过程顺序相同,
如果采用“@参数名=值”的格式,则所有的参数都
必须使用此种格式,顺序可以和原来不同,如果有
默认值,可以用“default”来调用。

3.参数值:如果给字符型和日期型参数赋值,则要加上单引号。

4.output:指定存储过程的返回参数,返回给调用者。

时间: 2024-10-31 03:05:37

Procedure 存储过程的相关文章

oracle procedure存储过程

1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS/AS 变量1 INTEGER :=0; 变量2 DATE: BEGIN . . . END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列(字段)存储到多个变量中,必须有一条记录,否则抛出异常(如果没有记录,抛出NO_DATA_FOUND) 例子: BEGIN SELECT

Oracle job procedure 存储过程定时任务(转自hoojo)

Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; select * from all_jobs; select * from user_jobs; -- 查询字段描述 /* 字段(列) 类型 描述 JOB NUMBER 任务的唯一标示号 LOG_USER VARCHAR2(30) 提交任务的用户 P

【转】Oracle job procedure 存储过程定时任务

原文:Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; select * from all_jobs; select * from user_jobs; -- 查询字段描述 /* 字段(列) 类型 描述 JOB NUMBER 任务的唯一标示号 LOG_USER VARCHAR2(30) 提交任务的用

Oracle job procedure 存储过程定时任务

oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; select * from all_jobs; select * from user_jobs; -- 查询字段描述 /* 字段(列) 类型 描述 JOB NUMBER 任务的唯一标示号 LOG_USER VARCHAR2(30) 提交任务的用户 PRIV_USER VARCHAR2(30) 赋予任务权限的用

stored procedure --存储过程

存储过程(Stored Procedure),计算机用语,是一组为了完成特定功能的SQL语句集,是利用SQL Server所提供的Transact-SQL语言所编写的程序.经编译后存储在数据库中.存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 .同时,存储过程可以接收和输出参数.返回执行存储过

MSSQL Transaction[事务] and Procedure[存储过程]

1 --事务分三种 2 --1.显示事务 3 --我们手动begin transaction ...... commit transaction/rollback transaction 4 --上面这种写法叫做“显示事务” 5 6 --2.隐式事务 7 SET IMPLICIT_TRANSACTIONS { ON | OFF }隐式事务 8 9 10 --3.自动提交事务,SQL Server默认使用的是自动提交事务. 11 --我们每次执行一条sql语句的时候,sql server都会自动帮

mysql store procedure 存储过程

参考资料: 1.http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 2.https://dev.mysql.com/doc/refman/5.7/en/create-procedure.html

PL/SQL 05 存储过程 procedure

--存储过程(不带参数) create or replace procedure 存储过程名as  变量.常量声明;begin  代码;end; --存储过程(带输入参数) create or replace procedure 存储过程名(参数1 类型,参数2 类型,...)   --可以设默认值,如low int:=1000as  变量.常量声明;begin  代码;end; --存储过程(带输出参数) create or replace procedure 存储过程名(参数1 out 类型

SQL Server 数据库的维护(上)_存储过程(procedure)

--维护数据库----存储过程(procedure)----概述: SQl Serve的存储过程是由一个或多个T-SQL语句组成的一个集合.常用的程序代码段通常被创建成存储过程,一次创建多次调用,这样既简化程序员的工作也减少与服务器交互的网络通信流量.存储过程中可以包含数据库中执行操作的程序语句,也包括调用其他过程.存储过程可以接收和输出参数,向调用它的程序返回值.存储过程被调用后,会返回给调用它的程序状态值,以表明调用成功或者调用失败以及调用失败的原因.--使用存储过程的优点:1)减少网络流量