oracle如何写事务,oracle存储过程事务写法

ORACLE数据库中如何定义/创建事务?

oracle的事务是以session开始登录后的第一条DML语句开始的,然后以DDL(drop,create,alter,rename等),TCL的rollback,commit,DCL(grant,revoke)结束。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都网站建设、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的临清网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

当然你也可以手动设置事务属性,如只读事务或者顺序事务:

set transaction read only

set transaction isolation level SERIALIZABLE

.NET中如何使用Oracle数据库事务(2)

在C# 和 VB.NET 中使用数据库事务您可以使用 OracleTransaction 类的一个对象来表示一个事务。OracleTransaction 类包含多个属性,其中的两个为 Connection(指定与事务关联的数据库连接)和 IsolationLevel(指定事务隔离级别);本文稍后将向您介绍更多有关事务隔离级别的内容。 OracleTransaction 类包含许多操控事务的方法。您可以使用 Commit() 方法永久提交 SQL 语句,并可以使用 Rollback() 撤销这些语句。您还可以使用 Save() 在事务中设置一个保存点。 我现在将带着您逐步完成两个示例程序 ― 一个用 C# 编写 (TransExample1.cs),另一个用 VB.NET 编写 (TransExample1.vb)。这些程序演示了如何执行一个包含了两条 INSERT 语句的事务。第一条 INSERT 语句将在表 product_types 中添加一行,第二条将在表 products 中添加一行。 导入命名空间以下C# 程序语句指定在程序中使用 System 和 Oracle.DataAcess.Client 命名空间: using System; using Oracle.DataAccess.Client;下面是等价的 VB.NET 语句: Imports System Imports Oracle.DataAccess.ClientOracle.DataAccess.Client 命名空间是 ODP.NET 的一部分,它包含许多类,其中有OracleConnection、OracleCommand 和 OracleTransaction。示例程序用到了这些类。 第1 步 创建一个 OracleConnection 对象连接到 Oracle 数据库,然后打开该连接。 在C# 中: OracleConnection myOracleConnection = new OracleConnection( "User Id=store;Password=store;Data Source=ORCL" ); myOracleConnection.Open();在VB.NET 中: Dim myOracleConnection As New OracleConnection( _ "User Id=store;Password=store;Data Source=ORCL") myOracleConnection.Open()User Id 和 Password 属性指定了您所要连接到的模式的数据库用户和口令。Data Source 属性指定了数据库的 Oracle Net 服务名称;初始数据库的默认服务名称为 ORCL。如果您使用的不是初始数据库,或者您的服务名称不同,那么您需要在程序中修改 Data Source 属性的设置。 第2 步 创建一个 OracleTransaction 对象,然后调用 OracleConnection 对象的 BeginTransaction() 方法启动事务。 在C# 中: OracleTransaction myOracleTransaction = myOracleConnection.BeginTransaction(); In VB.NET: Dim myOracleTransaction As OracleTransaction = _ myOracleConnection.BeginTransaction()第3 步 创建一个 OracleCommand 对象,用于存储 SQL 语句。 在C# 中: OracleCommand myOracleCommand = myOracleConnection.CreateCommand();在VB.NET 中: Dim myOracleCommand As OracleCommand = myOracleConnection.CreateCommand因为OracleCommand 对象使用 OracleConnection 对象的 CreateCommand() 方法创建的,所以它自动使用在第 2 步中为 OracleConnection 对象设置的事务。 第4 步 将OracleCommand 对象的 CommandText 属性设为向表 product_types 中添加一行的第一条 INSERT 语句。 在C# 中: myOracleCommand.CommandText = "INSERT INTO product_types (" + " product_type_id, name" + ") VALUES (" + " 3, 'Magazine'" + ")";在VB.NET 中: myOracleCommand.CommandText = _ "INSERT INTO product_types (" _ " product_type_id, name" _ ") VALUES (" _ " 3, 'Magazine'" _ ")"

oracle事务处理

登陆sqlplus,执行如下操作:

set serverout on;

begin

insert into zyb values('zy2002001','112201001','y001',10000,'张三','05-01-2002','05-04-2002','05-25-2002','作业公司作业一队','堵漏',7000,2500,1000,1400,11900,'李四','05-26-2002',11900,'王五','05-28-2002');

insert into clfb values('zy2002001','wm001',200,10);

insert into clfb values('zy2002001','wm002',200,10);

insert into clfb values('zy2002001','wm003',200,10);

insert into clfb values('zy2002001','wm004',100,10);

commit;

dbms_output.PUT_LINE('语句执行成功');

exception

when others then

rollback;

dbms_output.PUT_LINE('语句执行失败');

end;

/

Oracle定义事务的SQL语句

以oracle自带的scott为例:

1、select

t1.ename,t2.ename

as

mgrname,d.dname

from

scott.emp

t1,scott.emp

t2,scott.dept

d

where

t1.mgr=t2.empno

and

t2.deptno=d.deptno

2、select

d.*

from

scott.dept

d,(select

rownum

n,

tt.*

from

(select

count(*)

c,deptno

from

scott.emp

group

by

deptno

order

by

c

desc)

tt)t

where

t.n=1

and

t.deptno=d.deptno

3、select

*

from(select

t.*,dense_rank()over

(partition

by

deptno

order

by

sal)

r

from

scott.emp

t

where

deptno=30)

where

r=3

4、select

*

from(select

t.*,rank()over

(partition

by

n

order

by

sal)

r

from

(select

''

as

n,tt.*

from

scott.emp

tt)

t)

where

r

between

5

and

10

Oracle中事务怎么使用 ,什么时候使用事物

事务是为了实现数据的一致性和并发处理,你对数据进行定义和修改时就会产生事务。

例如你执行update语句,这时事务就开始了,执行commit会提交事务,而rollback会回滚(撤销)事务。如果你什么也不做,那么正常退出程序时会自动提交,而程序异常中止则会回滚事务。

当前题目:oracle如何写事务,oracle存储过程事务写法
文章链接:https://www.cdcxhl.com/article10/hspsdo.html

成都网站建设公司_创新互联,为您提供做网站企业网站制作搜索引擎优化商城网站营销型网站建设网站排名

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设