WEB开发网
开发学院数据库Oracle Oracle概念:过程、函数、程序包 阅读

Oracle概念:过程、函数、程序包

 2009-06-09 13:15:41 来源:WEB开发网   
核心提示: procedure swap(p1 in out number,p2 in out number ) asl_temp number; --局域变量的声明,相当于匿名块中declare之后的声明;过程:as~beginbeginl_temp := p1;p1 := p2;p2 := l_t

procedure swap(

p1 in out number,

p2 in out number ) as

l_temp number; --局域变量的声明,相当于匿名块中declare之后的声明;过程:as~begin

begin

l_temp := p1;

p1 := p2;

p2 := l_temp;

end swap;

/

set serveroutput on

declare

l1 number:=100;

l2 number:=200;

begin

swap(l1,l2);

dbms_output.put_line(‘l1 = ‘|| l1);

dbms_output.put_line(‘l2 = ‘|| l2);

end;

/

关于自主事务处理: P197

我们曾经讨论过COMMIT 和 ROLLBACK的概念。

建立过程P2:

CREATE OR REPLACE PROCEDURE P2 AS

A varchar2(50);

Begin

Select venadd1 into a from vendor_master where vencode=’V002’;

Dbms_output.put_line(a);

ROLLBACK;

END;

/

建立过程P1,调用P2:

CREATE OR REPLACE PROCEDURE P1 AS

B varchar2(50);

Begin

Update vendor_master set venadd1=’10 Walls Street ‘ where vencode=’V002’;

P2();

Select venadd1 into b from vendor_master where vencode=’V002’;

Dbms_output.put_line(b);

ROLLBACK;

END;

/

exec p1

说明事务处理可以跨越过程继续执行。

为了防止一个过程影响其他过程,可以将其标记为自主的。这样p2中的rollback将不会影响p1

CREATE OR REPLACE PROCEDURE P2 AS

A varchar2(50);

PRAGMA AUTONOMOUS_TRANSACTION;

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Oracle 概念 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接