如何在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 :
中有更好的描述
我知道这个问题可能会被重复,尽管我提出了同样的问题,因为我的要求不同并且对 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 :
中有更好的描述