存储过程疑问
发布网友
发布时间:2022-05-17 21:21
我来回答
共2个回答
热心网友
时间:2023-11-08 20:39
看存储过程定义,它本来就是带参的,如果一个复杂的select语句但是没有参数的话,那还不如建个视图
以下信息来源百度百科
存储过程(Stored Procere)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
有一点需要注意的是,一些网上盛传的所谓的存储过程要比sql语句执行更快的说法,实际上是个误解,并没有根据,包括微软内部的人也不认可这一点,所以不能作为正式的优点,希望大家能够认识到这一点。追问有参数的,只是这个参数的值几乎每次都不一样
追答存储过程只有在创建的时候进行编译,不会每次执行的时候编译
参数不同无非是在执行的时候内容有所变化
热心网友
时间:2023-11-08 20:39
存储过程就像编程语言中的一个函数,可以参数。是提供我们调用的完成一定功能的。
例如我们有个过程:
create or replace procere p_exp(inum in number , onum out number)
as
begin
onum:=inum*2;
end;
创建时编译一次就OK了,之后是调用,如果你想修改,修改完成就重新编译喽