问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle中的存储过程,有什么作用,以及怎么在代码中使用?

发布网友 发布时间:2022-04-07 20:59

我来回答

4个回答

热心网友 时间:2022-04-07 22:28

定义:存储过程(Stored Procere )是一组为了完成特定功能的SQL 语句
集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数
(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要
对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后
存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,
若干个有联系的过程可以组合在一起构成程序包。

优点:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某用户才具有对指定存储过程的使用权。
proc = connection.prepareCall("{ call SIM_MEDICARE.P_Isinblacklist(?,?,?,?,?) }");
proc.setString(1, “”);设置传入参数
proc.registerOutParameter(4, Types.VARCHAR);注册传出参数
proc.execute();执行过程
proc.getString(4)获取结果

热心网友 时间:2022-04-07 23:46

存储过程是命名程序块,其实质是通过一系列的SQL语句,根据传入的参数,可以完成比单个SQL语句更复杂的功能。举个例子:想要向一张表中插入大量数据(5万),就可以通过写一个存储过程直接调用,方便很多,而且存储过程可保存。

热心网友 时间:2022-04-08 01:21

储存过程是为了让你把东西保留 代码是为了链接

热心网友 时间:2022-04-08 03:12

楼上也不知道从哪扒下来的,一看LZ就是初学,举点例子不行吗?

 

比如建立个测试表

create table test
(id int,
name varchar2(10),
counts int);
 
insert into test values (1,'张三',100);
insert into test values (2,'李四',200); 
commit;

 

现在给你出个题目是

查询所有人加在一起的counts是多少

 

创建存储过程

create or replace p_test --创建存储过程,
as
v_counts int;--定义变量
begin --开始
select sum(counts) into v_counts from test;--将得到的结果放到变量里
DBMS_OUTPUT.PUT_LINE(v_counts);--将结果打印输出
end;--结束

 

执行这种不带输入参数的

begin
 p_test;
end;

 

然后你检查下结果

再给你创建一个带输入参数的

题目是,查询id为1的人名是什么

create or replace p_test1
(v_id int)
as
v_name varchar2(10);
begin
select name into v_name from test where id=v_id;
DBMS_OUTPUT.PUT_LINE(v_name);
end;

 

执行时这样

begin
p_test1(1);
end;

 

第2个我没给你写注释,你看你自己应该能理解吧

 

 

补充一下,存储过程不一定只是执行查询,也可以做删除或者修改等sql语句,总体来说就是几个或N个sql语句的集合,来完成系统内某些特定的需求,这些需求可以是一个sql搞定的,也可以是多个sql组合的

追问谢谢啊 你讲的很好啊,对了 顺便问问 在C#如何操作这个存储过程 ,像平时操作数据库表那样吗?

追答你看看c#里怎么调用这句

begin

p_test1(1);

end;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 怎样找到某个软件的注册表? 怎么在电脑找三菱编程软件的注册表? 怎样在电脑注册表中找到装入的软件?如果不需要了又该怎样删除?麻烦大虾们了?我先谢谢你了。 光甘草定的功效与作用有哪些? 一级建造师证在铁路局有用吗?我考的是铁路工程 含有甘草、芦荟、黄瓜等成分的护肤品可不可以白天用吗 会不会感光啊?白天用了皮肤会变黑吗 如何找游戏或软件注册表 找一个软件在注册表的哪个位置 芦荟的特性有哪些? 芦荟花可不可以和菊花甘草一起泡 怎样查找某个软件在注册表中的位置 一级建造师是否有用? 芦荟,荷叶,决明子,玫瑰花,甘草,甜叶菊,佼股兰是干什么的 电脑上安装的软件,应该如何从注册表查找 代理和代购在法律意义上有什么区别? 芦荟 砂仁 肉苁蓉 葛根 甘草 在一起冲水喝有什么好处 芦荟,甘草,莲子心一起泡水喝有什么医用价值 甘草水能不能浇芦荟 甘草酸二钾和芦荟胶可以一起用吗? 网上的代购和代理是一个意思吗? 求助STM8L052的库函数 请教STML段式LCD的LCD STM8L ACTIVE HTAL中 能被串口中断唤醒吗? stm8l051f3p6tr是不是stm8l051f3p6 stm8l052 vlcd应怎样接 新飞冰箱BCD-228GS/M 冷藏室显示E2 是哪的问题 怎么解决 新飞冰箱BCD一245E/M冷藏室显示E2是什么意思 正品货怎么识别stm8l052 STVP 烧录 STM8L051F3P6TR 新飞冰箱BCD-228GS/M显示E2 怎么回事 有人会用stm8l15x系列单片机吗? 新飞冰箱336w显示故障代码Er是什么意思? STM8L的LCD控制器怎么使用啊?是不是非要LSE时钟才行 新飞冰箱BCD-228GS电脑怎么设置? 求助STM8L15xstm8l adc 多通道道连续转换模式问题 新飞冰箱BCD-560WK显示故障代码Er是什么意思 虚拟现实和360度视频的区别是什么?各需要什么平台 有好的虚拟现实全景视频技术吗? 有比较好的虚拟现实全景视频技术吗 坑爹哥虚拟现实有没视频?