如何在oracle数据库中运行组查询。如果在查询中任何获取失败必须回滚?

How to run sets of queries in oracle database. if among queries any get fail must be rollback?

我知道这个问题可能会被重复,尽管我提出了同样的问题,因为我的要求不同并且对 ORACLE 数据库来说是新的。

基本上,我有四个不同表的查询。

查询 1:Table 姓名:用户

INSERT INTO users (user_id,user_name,acc_is_active,full_name,email,description,us_report_role,us_is_system,us_is_active)
  VALUES ('aaaaaa',' araut_xxxxxxxx’','Y', ‘Ram G DON’, ‘example@gmail.com’,‘Staff_ID','0','N','Y')

查询 2:Table 名称:序列

update sequences set SQ_SEQ_VALUE='aaaaaa' where SQ_SEQ_NAME='USER_SEQ'

查询 3:Table 姓名:users_auth_data

 INSERT into users_auth_data (UAD_USER_ID,UAD_KEY,UAD_VALUE) VALUES ('aaaaaa','LDAP_SERVER_ID','-1')

查询 4: Table : users_auth_data

INSERT into users_auth_data (UAD_USER_ID,UAD_KEY,UAD_VALUE) VALUES ('aaaaaa','LDAP_USER_DN','CN=Staff_ID,OU=ExamplePeople,DC=InfoDir,DC=DEV,DC=EXAMPLE')

这些是我需要按顺序 运行 的四个查询。如果其中任何查询失败,那么我们必须回滚 所有更改。如果所有查询 运行 都成功,那么将提交所有查询更改。

为了实现上述场景,我们需要遵循哪种方法?

如果有人能帮助我解决问题,那将是很大的帮助。

您要查找的是交易。

一种通过使用异常的 Pl/Sql 块来执行此操作的方法。 确保设置

autocommit off;

Declare 
<declare your variables>

Begin
<your queries>
commit; --This will commit the changes if all queries run fine

Exception
WHEN OTHERS THEN

rollback; --This will rollback the changes if there are any exceptions caught.


end;

还有一种方法可以做到这一点,那就是使用保存点。 这在下面 link :

中有更好的描述

https://www.tutorialspoint.com/plsql/plsql_transactions.htm