当前位置:  数据库>oracle

PL/SQL中的procedure和function编程

    来源: 互联网  发布时间:2017-05-22

    本文导语: PL/SQL中的procedure和function编程  procedure:存储过程 eg:   cursor c is select * from emp2 for update; --v_temp c%rowtype;   begin   for v_temp in c loop if(v_temp.sal< 2000) then update emp2 set sal=sal*2 where current of c ; elsif(v_temp.sal = 5000) then delete from emp2 where curre...

PL/SQL中的procedure和function编程 

procedure:存储过程
eg:
 
cursor c
is
select * from emp2 for update;
--v_temp c%rowtype;
 
begin
 
for v_temp in c
loop
if(v_temp.sal< 2000) then
update emp2 set sal=sal*2 where current of c ;
elsif(v_temp.sal = 5000) then
delete from emp2 where current of c;
end if;
end loop;
commit;
end;
 
 
带参数的存储过程;
create or replace procedure p
is
 
begin
if(v_a > v_b) then
t :=v_a;
else
:=v_b;
end if;
end;
 
调用过程:
declare
 
begin
p(v_a,v_b,v_ret,v_temp);
dbms_output.put_line(v_ret);
dbms_output.put_line(v_temp);
end;
 
函数:function
 
functionsal_tax
is
begin
if(v_sal < 2000) then
elsif(v_sal < 2750) then
else
end if;
end;
 
 
触发器:
不能直接执行,依赖于表
create table emp2_log
(
uname varchar2(20),
action varchar2(10),
atime date
);
 
create or replace
begin
if
emp2_log values (USER,'insert',sysdate);
elsif
insert into emp2_log values(USER,'update',sysdate);
elsif
insert into emp2_log values (USER,'delete',sysdate);
end if;
end;
 
update emp2 set sal=sal*2 where deptno = 30;
 
drop triggle trig;(删除)
 
create or replace trigger trig
after update on dept
begin
:OLD.deptno
end;
 
update dept set deptno = 99 where deptno = 10;
 
 
create table ariticle
(
id number primary key,
cont varchar2(4000),
pid number,
);
 
insert into ariticle values(1,'ahshdhshd',0,0,0);
insert into ariticle values(2,'bhshdhshd',1,0,1);
insert into ariticle values(3,'chshdhshd',2,1,2);
insert into ariticle values(4,dhshdhshd',2,0,2);
insert into ariticle values(5,'ehshdhshd',4,1,3);
insert into ariticle values(6,'fhshdhshd',10,1);
insert into ariticle values(7,'ghshdhshd',6,1,0);
insert into ariticle values(8,'hhshdhshd',3,0,4);
insert into ariticle values(9,'ihshdhshd',7,0,0);
insert into ariticle values(10,'jhshdhshd',9,0,3);
 
commit;(提交)
 
 
 
create or replace p (v_pid ariticle.pid%type,v_level binary_integer)
is cursor c
is select * from ariticle where pid = v__pid;
v_preStr varchar2(1024) :='';
begin
for i in 0..v_level loop
v_preStr :=v_preStr || ' ';
for v_ariticle in c
loop
dbms_output.put_line(v_preStr || v_ariticle.cont);
if (v_ariticle.isleaf = 0) then
p(v_ariticle.id,v_level+1);
end if;
end loop;
end;
 
exec p(0);


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • sql编程的几个常识
  • sql编程工具Sql Prompt下载及安装破解图文教程
  • PL/SQL编程经验小结开发者网络Oracle
  • Oracle9iPL/SQL编程的经验小结
  • 编程经验点滴 动态SQL的拼接技巧
  • ORACLE PL/SQL 触发器编程篇介绍
  • Oracle PL/SQL编程有关的数据库对象
  • T-SQL编程学习笔记
  • ASP数据库编程SQL常用技巧
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口resultset的类成员方法: getcursorname定义及介绍
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • java命名空间java.sql接口resultsetmetadata的类成员方法: getcolumntype定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,