数据库中 procedure 是什么???

数据库中 procedure 是什么???,第1张

在数据库中PROCEDURE叫存储过程

其实它就是函数!

它可以传入参数和传出参数!

具体声明为:

CREATE PROC 名称

@变量名 类型 INPUT,

@变量名 类型 OUTPUT

AS

BEGIN

函数体。。。。。。。

END

你在SQL上可以查到帮助的!

好好看看!

oracle中function是函数,而procedure是存储过程。

函数:

函数用于返回特定数据。执行时得找一个变量接收函数的返回值。

语法如下:

create or replace function function_name

(

argu1 [mode1] datatype1,

argu2 [mode2] datatype2, ........

)

return datatype

is

begin

end存储过程:

存储过程(Stored

Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL

语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

语法如下:

CREATE OR REPLACE PROCEDURE 存储过程名

IS

BEGIN

NULL

END

一、整体格式。存储过程的格式如下:

CREATE PROCEDURE [creator.]"proc_name" ( /* parameters, */ )

/* RESULT ( column-name, ) */

BEGIN

END

其中creator是用户名,比如dba;proc_name是你自己起的过程名;后面的参数可有可无,视自己情况定,如果有格式如(a integer,b char(50));再下面的RESULT应该是返回值,这个没用过不知道怎么回事!

二、内容。把这些都写好了可能是这样:

CREATE PROCEDURE dba.myProcedure ( @a integer,@b char(50))

BEGIN

END

但是这样子还是不能编译的,因为整个过程体是空的,而我学习的结果是过程中至少要有一个SQL语句。所以要这样写才不会出错:

CREATE PROCEDURE dba.myProcedure ( 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是数据库中存储过程的名字,下面的传入的参数。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10032445.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存