Oracle 存储过程
create or replace procedure p //有就替换,没有就创建
is
cursor c is
select * from emp for update;
begin
for v_emp in c loop
if (v_emp.deptno =10) then
update emp2 set sal*2 where current of c;
elsif () then
update emp2 set sal*2 where current of c;
else
update emp2 set sal*2 where current of c;;
end if;
end loop;
commit;
end;
2、执行
exec p;
--------
begin
p;
end;
3、带参数的存储过程
create or replace procedure p
(v_a in number,v_b number,v_ret out number,v_temp in out number) //in 传的参数,out传出参数
is
begin
if(v_a>v_b) then
v_ret:=v_a;
else
v_ret :=v_b;
end if;
v_temp:=v_temp+1;
end;
使用:
declare:
v_a number :=3;
v_b number :=4;
v_ret number;
v_temp number :=5;
begin
p(v_a,v_b,v_ret,v_temp);
dbms......(v_ret);
dbmmm.....(v_temp);
end;
如果有错误 ,可以执行show error 命令显示错误信息
4、function函数
create or replace function sal_tax
(v_sal number)
return number;
is
begin
if (v_sal<2000) then
return 0.10;
elsif (v_sal<2750) then
return 0.15;
 
相关文档:
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表 ......
方法一:
----------------------------------------------------------------
---Muti-row to line(col2row)
----------------------------------------------------------------
create or replace type str_tab is table of varchar2(20);
/
grant all on str_tab to public;
create public synonym str_tab for ......
oracle 存储过程和函数学习笔记
1、创建过程的语法:
Code
create [or replace] procedure procedure_name
[(argument[{in|out|in out}] type,
argument[{in|out|in out}] type)]&n ......
学习Oracle是一个漫长艰
辛的过程。如果没有兴趣,只是被迫学习,那么是很难学好的。学习到一定程度的时候,要想进一步提高,就不得不接触很多Oracle之外的东西,如
Unix,如网络、存储等。因此,要真的决心学好Oracle,就一定要有兴趣。有了兴趣,就会一切变得简单快乐起来。简单总结一下,那就是:兴趣、学
习、实践。 ......
Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管 ......