Oracle存储过程的如何正确输写?
发布网友
发布时间:2022-03-29 00:31
我来回答
共1个回答
热心网友
时间:2022-03-29 02:01
我来帮您,不解决不要钱哦
-----------------华丽丽的分割线-----------------------------
我们一般都会写SQL语句,对吧,存储过程就是将SQL封装一下,按照业务逻辑组成一起
CREATE OR REPLACE PROCEDURE TEST22
(
ret OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN ret FOR
SELECT * FROM t_user;
END;
-----------------------------------
上面是一个存储过程,就是我将SELECT * FROM t_user;这个sql语句封装成一个存储过程
实际上执行存储过程的效果和sql是一模一样的
接着我给你一个测试例子,一看就明白了,先建表和插入测试数据
---------------------------------
create table
xuesheng(id integer, xing_ming varchar2(25), yu_wen number, shu_xue number);
insert into xuesheng values(1,'zhangsan',80,90);
insert into xuesheng values(2,'lisi',85,87);
-------------------------------------------------
1)无返回值的存储过程
create or replace procere xs_proc_no is
begin
insert into xuesheng values (3, 'wangwu', 90, 90);
commit;
end xs_proc_no;
2)有单个数据值返回的存储过程
create or replace procere xs_proc(temp_name in varchar2,
temp_num out number) is
num_1 number;
num_2 number;
begin
select yu_wen, shu_xue
into num_1, num_2
from xuesheng
where xing_ming = temp_name;
--dbms_output.put_line(num_1 + num_2);
temp_num := num_1 + num_2;
end;
我写的存储过程代码不下与40万行,有啥问题可以问俺,俺一般都可以回答,嘿嘿、