PLSQL:我们可以在同一个表

时间:2016-05-19 03:14:16

标签: oracle11g

我有一个场景,其中必须几乎同时创建和运行两个预定作业。并且代码几乎不同,但只有一个表(Master_Data1)在选择查询中是共同的,如下所示。我主要担心的是,如果这可能会产生任何锁定条件。我们必须在生产中运行此代码,并且视图具有数百万条记录。请帮助我理解两个不同会话访问的select中的公共表是否可以创建锁。

JOB1:

INSERT INTO Result_Table1
SELECT * FROM Master_Data1 md LEFT JOIN vw_External_1 vw;

JOB2:

INSERT INTO Result_Table2
SELECT * FROM Master_Data1 md LEFT JOIN vw_External_2 vw;

1 个答案:

答案 0 :(得分:2)

由于您只在Master_Data1表上运行SELECT语句,因此不应存在锁定问题。

有关锁定和并发的更多信息,请阅读以下Oracle文档。

https://docs.oracle.com/cd/E11882_01/server.112/e40540/consist.htm#CNCPT621 http://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_locks001.htm#SQLRF55502