Oracle 数据库学习-存储过程
SQL中循环和分支的写法
create or replace procedure basePro is
num number default 0;
begin
--loop循环
loop
Dbms_Output.put_line('loop...end loop' || num);
exit when(num > 2);
num := num + 1;
end loop;
--while loop循环
while (num < 6) loop
Dbms_Output.put_line('while...end loop' || num);
num := num + 1;
end loop;
--for loop循环
for i in 1 .. 4 loop
Dbms_Output.put_line('for...end loop' || i);
end loop;
num := 5;
if num < 10 then
Dbms_Output.put_line('if num < 10');
elsif num < 20 then
Dbms_Output.put_line('if num < 20');
else
Dbms_Output.put_line('if num < 30');
end if;
case
when num < 10 then
Dbms_Output.put_line('case num < 10');
when num < 20 then
Dbms_Output.put_line('case num < 10');
else
Dbms_Output.put_line('case num < 30');
end case;
--自己抛出异常
raise_application_error(-20000,'bug bug');
insert into test values (1, '33');
commit;
exception
when others then
Dbms_Output.put_line('insert erroer'||sqlcode||sqlerrm);
end basePro;
/
create or replace procedure bigNumInsert(arg1 in out default 0 number , arg2 varchar2) is
newid number default 0;
begin
dbms_output.put_line(arg1);
dbms_output.put_line(arg2);
dbms_output.put_line(newid);
while (arg1 < 1000) loop
select nvl(max(id), 0) into newid from test;
newid := newid + 1;
insert into test values (newid, arg2 || arg1);
arg1 := arg1 + 1;
end loop;
update test t set t.name='4';
dbms_output.put_line(SQL%rowcount);
commit;
end;
/
prompt
prompt Creating procedure CURSOR1
prompt ==========================
prompt
create or replace procedure cursor1 is
num number default 0;
cursor c1 is
select * from emp;
emprow emp%rowtype;
begin
--简单的游标
for i in (select * from emp) loop
dbms_output.put_line(i.EMPNO);
end loop;
--简单的游标2
for i in c1 loop
dbms_output.put_line(i.ENAME);
end loop;
--通常的用法
open c1;
loop
fetch c1
into emprow;
exit when c1%notfound;
dbms_output.put_line(emprow.empno || ' ' || emprow.ENAME);
end loop;
close c1;
--隐式游标
end cursor1;
/
create or replace procedure cursor2 is
--num number default 0;
--type ref_cursor is ref cursor;
c1 p1.ref_cursor;
emprow emp%rowtype;
sqlString varchar2(2000);
begin
--动态sql
sqlString := 'select * from emp t where t.empno= 7369';
open c1 for sqlString;
loop
fetch c1
into emprow;
exit when c1%notfound;
dbms_output.put_line(emprow.ename);
end loop;
close c1;
sqlString := 'select * from emp t where t.empno= :empno';
open c1 for sqlString
using 7369;
loop
fetch c1
into emprow;
exit when c1%notfound;
dbms_output.put_line(emprow.ename);
end loop;
close c1;
end cursor2;
/
分享到:
相关推荐
Oracle数据库--存储过程、函数、触发器和包.pptx
Oracle数据库培训-PLSQL编程
是否是大法师的方式的vnslkskvsnvks 法师打发士大夫什邡市
详细讲解Oracle数据库SQL-第6章存储过程、函数和包,其中有例子
oracle实验5-存储过程与触发器.doc
第1章Oracle数据库概述 1.简答题 (1) 数据是描述事物的符号,是数据库中存储的基本对象。在计算机中,用记录的形式来描述数据。数据与数据的解释即数据的语义是紧密结合的。数据库是指按一定的数据模型组织、描述...
Oracle通用数据库存储过程代码--高效分页存储过程,只需简单的修改即可使用,方便易懂!
oracle数据库的存储结构-.pdforacle数据库的存储结构-.pdforacle数据库的存储结构-.pdforacle数据库的存储结构-.pdforacle数据库的存储结构-.pdf
oracle数据库 存储过程oracle数据库 存储过程
oracle 数据库 plsql 存储过程
sql数据库优化--使用索引优化存储过程,相信你对数据库的理解一定不会少!对于你开发和设计数据库是不可少的哟!
4、接收雇员号,输出该雇员的所有信息,没有提成的用0替代。...7、输入部门编号,按照下列加薪比例执行给该部门的雇员加薪(用CASE实现,修改emp1表的数据) (存储过程) 13、输出如下九九乘法表。(存储过程)
Oracle实验报告
调用Oracle数据库中的存储过程需要两步走 第一步,Oracel定义存储过程 第二步,调用存储过程
oracle学习笔记;oracle DML数据库操作语言;oracle常用函数使用方法及使用例子,存储过程等的创建
oracle数据库学习宝典里面包含了视图、存储过程、视图、表、索引、触发器、同义词、分区表等使用建立等等,包罗万象
如何备份还原oracle数据库
本文讲述如何在Oracle通过任务和管道的应用,异步调用存储过程的方法。并且介绍了其基本原理和具体实现测试。