gpt4 book ai didi

sql - 同时运行oracle数据库中相关或相同的程序,互不干扰

转载 作者:搜寻专家 更新时间:2023-10-30 22:26:45 25 4
gpt4 key购买 nike

我有一个用于创建在 oracle 数据库中运行过程的特殊报告的软件,但问题是:当我们创建一个报告时,它使用一些程序并截断和填充一些表格,如果我们同时创建另一个报告,它会导致错误,因为它需要我的表格信息,这些信息被另一个程序截断了。所以我正在寻找一种技术或查询来处理这个问题,并在第一个报告完成它在用户没有注意到任何东西的状态下使用的所有过程之后创建第二个报告。在这种情况下,第二份报告的创建时间比第一份报告要长。

最佳答案

您可以使用 DBMS_LOCK.ALLOCATE_UNIQUE 包来同步您的应用程序并强制执行顺序处理。

DECLARE
l_status number;
l_lock_handle varchar2(128);
l_lock_request integer;
BEGIN
DBMS_LOCK.ALLOCATE_UNIQUE ( lockname => 'NAME_OF_YOUR_LOCK', lockhandle => l_lock_handle);
l_status := DBMS_LOCK.REQUEST(lockhandle => l_lock_handle, timeout => 15);
if (l_status = 0) then
-- Plase your code here
-- Only one thread can work here
l_lock_request := DBMS_LOCK.release(l_lock_handle);
else
-- handle other lock statuses...
end if;
END;

您可以阅读有关 DBMS_LOCK here 的更多信息.

关于sql - 同时运行oracle数据库中相关或相同的程序,互不干扰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50227610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com