存储过程的格式
1、delimiter // ,声明分隔符:DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码(这里如果不懂的话,你可以通过试错的方法来理解)。
2、编写存储过程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ]参数名数据类形...])
例子:
1)create procere proc1(out s int) // 只有输出
2)create procere proc2(in p_in bigint) // 只有输入
3)create procere proc15() // 没有输入与输出
4)create procere demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出
3、过程体的开始与结束使用BEGIN与END进行标识。
4、select count (*) into s from student; // 过程体,一系列的逻辑语句,sql语句
5、delimiter ; 用完了之后要把分隔符还原。
⑵ 怎么写存储过程
一、整体格式。存储过程的格式如下:
CREATE PROCEDURE [creator.]"proc_name" ( /* parameters,... */ )
/* RESULT ( column-name,... ) */
BEGIN
;
END
其中creator是用户名,比如dba;proc_name是你自己起的过程名;后面的参数可有可无,视自己情况定,如果有格式如(a integer,b char(50));再下面的RESULT应该是返回值,这个没用过不知道怎么回事!
二、内容。把这些都写好了可能是这样:
CREATE PROCEDURE dba.myProcere ( @a integer,@b char(50))
BEGIN
;
END
但是这样子还是不能编译的,因为整个过程体是空的,而我学习的结果是过程中至少要有一个SQL语句。所以要这样写才不会出错:
CREATE PROCEDURE dba.myProcere ( a integer,b char(50))
BEGIN
SELECT * FROM MyTable
END
三、语法。
1、分号。在写的过程中最郁闷的问题是分号!最后发现好像是这样:
每一句都要加分号,不管是SQl语句还是其它的什么语句,但是最后保存后最后一句的分号会被自动删除!(我用的是Sybase的Sybase Central)。
2、定义变量。
格式为Declare @varName integer;(注意有分号!)“@”号好像可有可无!
3、SELECT语句。
格式为:
SELECT Count(*) INTO @varName FROM MyTable WHERE id = @a;
4、if语句。
格式为:
if(varName > 0) then
return
end if;(注意还有分号!)
5、循环语句。
格式为:
loop
……
end loop;(注意分号!)
6、设置变量值。
格式为:
set @varName = 10;
set @varName = @varName2;
7、字符串。
Declare myString char(50);
set @myString = 'Hello!';
要用单引号!
8、定义游标。
格式为:
declare MyCursor dynamic scroll cursor for
select …… from …… where ……;
9、打开、使用和关闭游标。
Open MyCursor;
fetch next MyCursor into ……;
Close MyCursor;
10、调用方法。
string ls_name="test"
DECLARE ProcName1 PROCEDURE FOR ProcName2
@wg_wellid=2,@wg_wgid=1,@wg_stringsid=1,@bha_wellid=2,@bha_name=:ls_name;
execute ProcName1 ;
close ProcName1 ;
其中ProcName1 是调用程序中自定义的过程名,ProcName2是数据库中存储过程的名字,下面的传入的参数。
⑶ 数据库存储过程怎么编写
第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”
第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了
第三步: 编译存储过程,在工具栏上按下执行按钮,如果没有错误,就编写成功了。
第四步:调用:在sqlserver的语句查询框中,输入exec 存储过程名 参数,执行就可以了。
基本语法格式如下:中括号带的是可选项
create proc | procere pro_name
[{@参数数据类型} [=默认值] [output],
{@参数数据类型} [=默认值] [output],
....
]
as
begin
SQL_statements
--业务处理
end
⑷ 存储过程的参数类型哪几种
存储过程共有IN、OUT、INOUT三种参数类型,格式如下:CREATEPROCEDURE(IN|OUT|INOUT参数名数据类型...)存储过程可以没有参数,但如果在使用过程需要用到参数,需按上面的格式进行定义。
第一项:IN|OUT|INOUT,表示参数的类型,选择其中的一种即可;第二项:参数名,表示参数的名称;第三项:数据类型,表示这个参数的数据类型,如int、float、double、varcahr等;第四项:“…”,表示参数可以定义多个,如果有多个参数时按前三项的格式定义即可,每个参数间用英文状态下的逗号“
⑸ 储存过程的类型有哪些
问题一:存储过程的种类 1系统存储过程以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。2本地存储过程用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就粗肢蚂是指本地存储过程。3临时存储过程分为两种存储过程:一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。4远程存储过程在SQL Server2005中,远程存储过程(Remote Stored Proceres)是位于远程服务器上的存储过程,通常可以使用分饥李布式查询和EXECUTE命令执行一个远程存储过程。5扩展存储过程扩展存储过程(Extended Stored Proceres)是用户岩埋可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。
问题二:sql,server中的存储过程有几种类型 》系统过程,用户过程;
》内部过程,扩展存贮过程(外部dll)
问题三:SQL Server2005中存储过程的类型有哪些 10分 存储过程是指封装了可重用代码的模块或例程。存储过程可以接受输入参数、向客户端返回表格或标量结果和消息、调用数据定义语言 (DDL) 和数据操作语言 (DML) 语句,然后返回输出参数。在 SQL Server 2005 中,存储过程有两种类型:Transact-SQL 或 CLR。
Transact-SQL
Transact-SQL 存储过程是指保存的 Transact-SQL 语句 *** ,可以接受和返回用户提供的参数。例如,存储过程中可能包含根据客户端应用程序提供的信息在一个或多个表中插入新行所需的语句。存储过程也可能从数据库向客户端应用程序返回数据。
CLR
CLR 存储过程是指对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用,可以接受和返回用户提供的参数。它们在 .NET Framework 程序集中是作为类的公共静态方法实现的。
问题四:sql server存储过程的参数有哪些类型 int,char,nchar,nvarchar,varchar,text,date,time,datetime,bit,bool……
问题五:sql server存储过程的参数有哪些类型 SQL Server存储过程是SQL数据库的重要组成部分,其中可以用到许多参数。在SQL Server存储过程中,支持输入(Input)、输出参数(Output),也支持返回值参数(ReturnValue)。
返回值参数不是一个形参,而类似于编程中的返回值类型。它都是通过Return语句来返回的,而且在SQL Server中,必须返回INT型的数据,而且很显然,只能有一个返回值,因为RETURN语句其实是会终止SQL Server存储过程的。
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ALTER PROCEDURE [dbo].[GetCustomers]
(@rowcount INT OUTPUT)
AS
SELECT [CustomerID]
,[panyName]
,[ContactName]
,[ContactTitle]
,[Address]
,[City]
,[Region]
,[PostalCode]
,[Country]
,[Phone]
,[Fax]
FROM [Northwind].[dbo].[Customers]
SET @rowcount=
rowcount
问题六:在SQL中存储过程的一般语法是什么? sql server存储过程语法
存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。
定义总是很抽象。存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server)。如果我们通过创建存储过程以及在ASP中调用存储过程,就可以避免将SQL语句同ASP代码混杂在一起。这样做的好处至少有三个:
第一、大大提高效率。存储过程本身的执行速度非常快,而且,调用存储过程可以大大减少同数据库的交互次数。
第二、提高安全性。假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密。
第三、有利于SQL语句的重用。
在ASP中,一般通过mand对象调用存储过程,根据不同情况,本文也介绍其它调用方法。为了方便说明,根据存储过程的输入输出,作以下简单分类:
1. 只返回单一记录集的存储过程
假设有以下存储过程(本文的目的不在于讲述T-SQL语法,所以存储过程只给出代码,不作说明):
/*SP1*/
CREATE PROCEDURE dbo.getUserList
as
set nocount on
begin
select * from dbo.[userinfo]
end
go
以上存储过程取得userinfo表中的所有记录,返回一个记录集。通过mand对象调用该存储过程的ASP代码如下:
'**通过mand对象调用存储过程**
DIM Mym,MyRst
Set Mym = Server.CreateObject(ADODB.mand)
Mym.ActiveConnection = MyConStr 'MyConStr是数据库连接字串
Mym.mandText = getUserList '指定存储过程名
Mym.mandType = 4 '表明这是一个存储过程
Mym.Prepared = true '要求将SQL命令先行编译
Set MyRst = Mym.Execute
Set Mym = Nothing
存储哗程取得的记录集赋给MyRst,接下来,可以对MyRst进行操作。
在以上代码中,mandType属性表明请求的类型,取值及说明如下:
-1 表明mandText参数的类型无法确定
1 表明mandText是一般的命令类型
2 表明mandText参数是一个存在的表名称
4 表明mandText参数是一个存储过程的名称
还可以通过Connection对象或Recordset对象调用存储过程,方法分别如下:
'**通过Connection对象调用存储过程**
DIM MyConn,MyRst
Set MyConn = Server.CreateObject(&qu......>>
问题七:商品在储存过程中的变化形式有哪些 在商品交换发展的历史过程中,随着商品交换从偶然的行为逐步扩大成为经济生活中的重要环节,商品的价值形式也逐步发展。从简单的、个别的或偶然的价值形式,发展到总和的或扩大的价值形式,再发展到一般价值形式,最后发展到货币形式。 商品是使用价值和价值的统一。商品的使用价值是实实在在的,是看得见、摸得着的。米、布、房屋、自行车等等各种商品体的自然形态,体现着各种不同的使用价值,这是一目了然的。商品的价值实体是物化在商品中的一般人类劳动,与使用价值不同,商品的这种价值实体是看不见、摸不着的。即使把一件商品拆得粉碎,也找不到价值的任何影迹。这是因为,价值纯粹是商品的社会属性。价值实体虽然是已经消耗的劳动力即劳动,但并不是任何生产物质产品的劳动都会形成价值。只有当劳动产品成了供交换即供他人使用的商品,物化在商品中的劳动,才需要互相比较,才需要撇开其特殊的有用性质而把它看作无差别的一般人类劳动即抽象劳动。劳动产品转化为商品和消耗在产品生产中的劳动转化为价值,都是特定的社会关系的表现。价值既然纯粹是商品的社会属性,从商品体的自然形态中,当然无法找到它的影踪,而只有从价值关系即商品与商品交换的社会关系中,才能探索它的存在。 当两种商品互相交换,例如商品A与商品B相交换的时候,A、B两种商品就发生了等价关系。在商品交换中,任何一方都不愿吃亏。尽管在每个个别的交换行为中,由于各种各样的原因,交换的一方吃亏、另一方占便宜的事会经常发生;但从整体看,从长期趋势看,商品交换必然是价值量相等的交换。例如,1件上衣同20码麻布相交换,是因为 1件上衣和20码麻布,在生产中耗费了等量的劳动,具有等量的价值。在这一商品交换关系中,20码麻布是 1件上衣的交换价值。上衣的价值从上衣本身虽然看不出来,但它一旦同麻布交换,与麻布发生了价值关系,上衣的价值就可以从麻布上面表现了出来。商品的价值关系表明,价值是交换价值的内容,交换价值是商品价值的形式。在人类历史中,随着商品交换的发展,商品的价值形式也随之变化和发展。
问题八:SQL的存储过程 语法格式是什么? ---判断是否存在存储过程
if exists( select name from sysobjects where name='proc_name' )
drop proc proc_name
go
---创建存储过程
create proc proc_name
@parameter varchar(20),
@parameter2 int
as
主体语句
go
if exists:判断是否存在
drop proc : 删除存储过程,后面接存储过程名称,名称不用引起来
create proc: 创建存储过程,后面接存储过程名称,名称不用引起来
@parameter varchar(20): 参数,在执行存储过程的时候需要传入的参数,这里是字符类型,如果有多个参数的话,除了最后一个参数,其他的参数后面需要加逗号(英文状态),如果不需要传入,直接去掉就行了。
create proc proc_name
as
主体语句
go
as : 关键字
主体语句:就是你要做的操作的语句,和平时的完全一样,存储过程就相当把平时的sql语句在外面加了个壳的感觉。比如这里你需要查询一个表 select * from tableName1 那么这里就这样写
create proc proc_name
as
select * from tableName1
go
传参数:
create proc proc_name
@parameter varchar(20)
as
select * from tableName where [email protected]
go
执行的时候这样
exec proc_name '小明'
其他的操作都是这样的。
希望对你有帮助
问题九:外存主要有哪些类型 外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外储存器有硬盘、软盘、光盘、U盘等。
问题十:存储过程传的参数是list,应该用什么类型接受 看下这个吧。
bbs.csdn/topics/390094413
有代码
⑹ PL_sql如何执行oracle存储过程
要成功执行这个存储过程,你需要注意几点:
1.select * from ods_area; 不能直接在pl/sql 中作为语句执行。
应该用 select 字段 into plsql变量 from 表名;
的形式来获取表中的数据,保存到plsql变量中。
2. 存储过程的语法格式为:
create or replace procere area
is
--变量声明;
begin
--过程主体;
end area;
3. 如果存储过程代码无误,可以通过 "/" 来执行代码,编译存储过程。
4.通过exec 或 execute 来调用编译后的存储过程。
例如:
-- 创建procere:
create or replace procere area
is
num number ;
v_areaRecord al%ROWTYPE;
begin
--例子1
select * into v_areaRecord from al;
--例子2
select 12345 into num from al;
end area;
/
-- 通过 / 执行;
--调用
exec area;
⑺ SQL的存储过程 语法格式是什么
---判断是否存在存储过程
if exists( select name from sysobjects where name='proc_name' )
drop proc proc_name
go
---创建存储过程
create proc proc_name
@parameter varchar(20),
@parameter2 int
as
主体语句
go
if exists:判断是否存在
drop proc : 删除存储过程,后面接存储过程名称,名称不用引起来
create proc: 创建存储过程,后面接存储过程名称,名称不用引起来
@parameter varchar(20): 参数,在执行存储过程的时候需要传入的参数,这里是字符类型,如果有多个参数的话,除了最后一个参数,其他的参数后面需要加逗号(英文状态),如果不需要传入,直接去掉就行了。
create proc proc_name
as
主体语句
go
as : 关键字
主体语句:就是你要做的操作的语句,和平时的完全一样,存储过程就相当把平时的sql语句在外面加了个壳的感觉。比如这里你需要查询一个表 select * from tableName1 那么这里就这样写
create proc proc_name
as
select * from tableName1
go
传参数:
create proc proc_name
@parameter varchar(20)
as
select * from tableName where name=@parameter
go
执行的时候这样
exec proc_name '小明'
⑻ 存储过程应用语句有哪些
存储过程与其他面向对象的程序设计语言一样,同样包含数据类型、流程控制、语句注释、输入和输出与自己的函数库。存储过程的流程控制语句有ifelse、casewhenthen、while等,但没有for循环,跟C++、Java等语言的流程控制语句非常类似。条件语句条件语句是流程控制的重要组成部分,跟其他编程语言一样,存储过程允许使用if关键字来作条件判断,除此之外,还可以使用case来实现其他更为灵活的条件控制。
1.if语句(1)if语法if语句是最普通的条件控制语句,其语法简单易懂,在存储过程代码中随处可见,也是使用频率最高的条件判断语句。
语法格式:if…then…elseif…then…else…endif其中,((1)if后面跟判断条件;
(2)elseif后面跟判断条件;
(3)then后面跟条件分支语句块;
(4)可以有多个elseif…then语句块,也可以没有;(5)else表示以上条件均不满足时会执行的语句块;
(6)整个条件语句块的最后面以endif表示结束。if语句的用法,以语句“ifcondition_para=1then”开始条件控制,以语句“endif”结束条件控制,中间用“elseif”“else”作条件分支控制。单个SQL语句if语法语句格式:if(expr1