导航:首页 > 数据处理 > 数据库存储过程怎么写

数据库存储过程怎么写

发布时间:2022-04-27 08:05:56

‘壹’ 怎么写存储过程

一、整体格式。存储过程的格式如下:
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 userData(

IN id INT

)

BEGIN

SELECT * from userdata WHERE userflag = id;

END;

其中IN是传进去的变量;

drop procere userData;//销毁这个存储过程。

call userData(2) //调用存储过程。

(2)数据库存储过程怎么写扩展阅读:

sql中的存储过程及相关介绍:

CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]

[(参数#1,…参数#1024)]

[WITH

{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}

]

[FOR REPLICATION]

AS 程序行

其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数

(SQL Server 7.0以上版本),参数的使用方法如下:

@参数名数据类型[VARYING] [=内定值] [OUTPUT]。

每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。

[内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数。

同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。

参考资料来源:网络-储存过程



‘叁’ 数据库存储 过程怎么写!

/*
选择出需要分析的数据。
添加循环费用的详细数据时用。
*/
ALTER PROCEDURE dbo.StCycCharges
AS
-- 创建临时表
Create Table #out(
[Id] [int], -- 不能对int类型的字段指定宽度
[EndDate] [smalldatetime] null,
[ChargeMoney] [money] null,
[CycNo] [int]
)
-- 将数据填充到临时表中
Insert Into #out
Select
Id, EndDate, ChargeMoney,
Case
When Cyc='Daily' Then DateDiff(d, getdate(), EndDate)
When Cyc='Weekly' Then DateDiff(ww, getdate(), EndDate)
When Cyc='Monthly' Then DateDiff(m, getdate(), EndDate)
When Cyc='Annually' Then DateDiff(yy, getdate(), EndDate)
When Cyc='bi-Annually' Then DateDiff(yy, getdate(), EndDate)/2
End As CycNo
From
TBL_Resident_ChargesList
Where
IsOnce=0 And (DateDiff(d, getdate(), EndDate)>=0)

-- 选取临时表中的数据
Select * From #out Where Id Not In(
Select a.ListID From TBL_Resident_ChargesDetails a, #out b Where a.ListID=b.ID And a.CycNo=b.CycNo
)
-- 删除临时表
Drop Table #out
RETURN

‘肆’ sql server 2008 怎么编写存储过程

第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”
第二步:在create
PROCEDURE

输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了
第三步:
编译存储过程,在工具栏上按下执行按钮,如果没有错误,就编写成功了。
第四步:调用:在sqlserver的语句查询框中,输入exec
存储过程名
参数,执行就可以了。
基本语法格式如下:中括号带的是可选项
create
proc
|
procere
pro_name
[{@参数数据类型}
[=默认值]
[output],
{@参数数据类型}
[=默认值]
[output],
....
]
as
begin
SQL_statements
--业务处理
end

‘伍’ 数据库的存储过程怎么写

1,调用没有参数的存储过程
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText="{call nono}"

'set rs=cmc.exe 或者cmd.execute

set rs=cmd.Execute()

%>
2,一个输入的参数的存储过程
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText="{call oneinput(?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger ,adParamInput )
cmd("@aaa")=100

cmd.Execute()

%>
3,一个输入参数和一个输出的参数
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText = "{call oneinout(?,?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput)
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)

cmd.Execute()

bbb=cmd("@bbb")
%>
4,一个输入参数,一个输出参数,和一个返回值
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText="{?=call onereturn(?,?)}"

cmd.Parameters.Append cmd.CreateParameter("@return_value",adInteger,adParamReturnValue )
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput )
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)

cmd.Execute()

bbb=cmd("@bbb")
rrr=cmd("@return_value")
%>

‘陆’ mysql数据库存储过程怎么写

创建存储过程
mysql>
delimiter
$
--
delimiter
$是设置
$为命令终止符号,代替默认的分号,因为分号有其他用处.
mysql>
create
procere
sp_test(IN
pi_id
int,
OUT
po_name
varchar(10))
->
begin
->
select
*
from
test.tb_test;
->
select
tb_test.name
into
po_name
from
test.tb_test
where
tb_test.id
=
pi_id;
->
end
->
$
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
delimiter
;
--
恢复分号作为分隔终止符号
5.调用存储过程
mysql>
set
@po_name='';
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
call
sp_test(1,@po_name);

‘柒’ Oracle数据库的存储过程怎么写

Oracle存储过程基本语法:

CREATEORREPLACEPROCEDURE存储过程名
IS
BEGIN
NULL;
END;

解释:

行1:
CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
IS关键词表明后面将跟随一个PL/SQL体。
行3:
BEGIN关键词表明PL/SQL体的开始。
行4:
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
END关键词表明PL/SQL体的结束。


‘捌’ 什么是数据库存储过程

存储过程(Stored Procere)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。

这类语言主要提供以下功能,让用户可以设计出符合应用需求的程序:

1、变量说明

2、ANSI(美国国家标准化组织)兼容的SQL命令(如Select,Update….)

3、一般流程控制命令(if…else…、while….)

4、内部函数

(8)数据库存储过程怎么写扩展阅读:

种类

1、系统存储过程

2、本地存储过程

3、临时存储过程

4、远程存储过程

5、扩展存储过程

‘玖’ 如何编写数据库存储过程

存储过程代码参考如下:
create
or
replace
procere
bak_pay_list_xxx(local_net
in
varchar2,bak_month
in
varchar2,ret
out
varchar2)
is
ls_sql
varchar2(1024);
ls_sql_del
varchar2(1024);
begin
...
end
bak_pay_list_xxx;

阅读全文

与数据库存储过程怎么写相关的资料

热点内容
农村养牛技术学什么好 浏览:138
买新房子走什么程序最安全 浏览:599
菜市场卖的蛋鸡是什么品种 浏览:813
市场部经理需要考哪些证 浏览:866
大数据升本后专业叫什么 浏览:558
如何创建业务数据中心 浏览:63
晋中古玩市场有哪些 浏览:422
如何爬取天猫数据库 浏览:8
网贷交易流程会产生哪些问题 浏览:195
男人不联系你还发信息说想你怎么回复 浏览:844
抖音上的数据在哪里 浏览:199
游资用什么技术最好 浏览:446
上海股市最初是如何交易 浏览:754
浙江接种信息哪里查 浏览:961
抖音什么是团购交易金额 浏览:412
省级代理合同怎么签 浏览:168
对冲交易工具哪个好 浏览:291
牛市场怎么卖视频 浏览:843
怎么做徽商代理 浏览:958
平安保险代理人由哪个机构发工号 浏览:109