博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle笔记 、PL/SQL存储过程
阅读量:5787 次
发布时间:2019-06-18

本文共 1569 字,大约阅读时间需要 5 分钟。

hot3.png

--create or replace 创建或替换,如果存在就替换,不存在就创建

create or replace procedure p

is

cursor c

is

select * from dept2 for update;

begin

for row_record in c loop

if (row_record.deptno = 30) then

update dept2 set dname = substr(dname, 0, length(dname) - 3) where current of c;

end if;

end loop;

end;

 

exec p;

 

begin

p;

end;

 

--带参存储过程

--in 输入参数,不带in out 默认输入参数

--out 输出参数

--in out 同时带的是输入输入参数

create or replace procedure p2(

a in number,

b number,

s_result out number,

s_temp in out number

)

is

begin

if (a > b) then

s_result := a;

else

s_result := b;

end if;

s_temp := s_temp + 3;

end;

 

--调用存储过程

declare

v_a number := 4;

v_b number := 6;

v_result number;

v_temp number := 5;

begin

p2(v_a, v_b, v_result, v_temp);

dbms_output.put_line(v_a);

dbms_output.put_line(v_b);

dbms_output.put_line(v_result);

dbms_output.put_line(v_temp);

end;

 

---删除一个表的过程

create or replace procedure drop_table(tname varchar2)

as

total int := 0;

begin

select count(*) into total from user_tables

where table_name = upper(tname);

if total >= 1 then

execute immediate 'drop table '||tname; --此处必须用动态sql

end if;

end;

select * from user_tables;

 

--递归存储过程

create or replace procedure pro_emp(sEmpno emp.empno%type, sLevel integer)

is

cursor c is select * from emp where mgr = sEmpno;

prefixStr varchar(255);

begin

for i in 1..sLevel loop

prefixStr := prefixStr || '----';

end loop;

 

for row_data in c loop

dbms_output.put_line(prefixStr || row_data.ename);

pro_emp(row_data.empno, sLevel + 1);

end loop;

end;

 

select * from emp;

begin

pro_emp(7839, 0);

end;

转载于:https://my.oschina.net/zhanggc/blog/1609700

你可能感兴趣的文章
SFB 项目经验-05-共存迁移-Lync 2013-SFB 2015-边缘服务器复制状态不正常
查看>>
九、OLTP 性能调整与优化--结语
查看>>
2011年度总结
查看>>
linux下的 lib文件的学习思考
查看>>
微软MCITP系列课程(十)WSUS服务器搭建
查看>>
华为HCC2014的变与不变
查看>>
Outlook替代Hotmail:社交很重要,但邮箱是根本
查看>>
大卫谈学习
查看>>
层次化防御保证企业门户网站安全
查看>>
体验VMware View HTML Access
查看>>
让VMware ESXi 5.5与Windows时间服务器同步
查看>>
开源jeecms,jeebbs学习笔记4——从jo_user表看持久层设计
查看>>
技术人生:不要忘记过去,也不要想着过去,向前看
查看>>
HDU 4422 The Little Girl who Picks Mushrooms(简单题)
查看>>
HDUOJ---------(1045)Fire Net
查看>>
TextView 超链接点击跳转到下一个Activity
查看>>
Java技术专题之JVM逻辑内存回收机制研究图解版
查看>>
处理 Maven 项目名称红色感叹号的问题
查看>>
Oracle管理监控之监控表空间使用率脚本
查看>>
web.xml文件书写规则
查看>>