Oralce函数
- 简单的存储过程
--命名pl/sql块 ->存储过程
create procedure prod_JianDan
is
begin
dbms_output.put_line('简单的存储过程');
end;
--调用存储过程
call prod_JianDan();
--如果create or replace procedure 写了这个就会取代命名相同
--一般or replace可写可不写
- 出参/入参/出入参的存储过程
入参 -> in 出参 ->out 出入参 ->in out
- 入参
create or replace procedure prod_Ru(empno in number,sal in number)
is
Begin
-- empno := 99; -- 入参不允许作为赋值目标
dbms_output.put_line('最简单的存储过程'||empno);
dbms_output.put_line('最简单的存储过程'||sal);
end;
--调用出参的存储过程
call prod_Ru(10,20);
call prod_Ru(empno => 10, sal => 20);
call prod_Ru(sal => 10, empno => 20);
- 出参
create or replace procedure (job out varchar2)
is begin
job := '扫地僧';
end;
-- 出参参数的调用
declare
v_job varchar2(20);
begin
prod_Chu(v_job);
dbms_output.put_line(v_job);
end;
- 出入参
create or replace procedure prod_RuChu(deptNo in out number)
is begin
dbms_output.put_line('最简单的存储过程'||deptNo);
deptNo := 33;
dbms_output.put_line('最简单的存储过程'||deptNo);
end;
-- 出参参数的调用
declare
v_deptNo number(4) default 11;
begin
prod_RuChu(v_deptNo);
dbms_output.put_line(v_deptNo);
end;
- 删除存储过程
drop procedure prod_emp;
三、函数的存储过程
-- 函数定义及操作 [在sql中使用]
create or replace function fun_emp(empno in number)
return number
is begin
dbms_output.put_line('测试函数');
if empno > 7788 then
return empno * 2;
end if;
return empno * 1.5;
end;
-- 调用函数
declare
v_re number(10);
begin
v_re := fun_emp(10);
dbms_output.put_line(v_re);
end;
select empno,fun_emp(empno) from emp;