我对Oracle中的全局临时表感到困惑:
例如,我想编写一个SP MySP,它可以同时供5个用户使用。
CREATE GLOBAL TEMPORARY TABLE temp
(ID NUMBER, COL1 VARCHAR2(4000), COL2 VARCHAR2(4000));
CREATE OR REPLACE PROCEDURE MySP
(
id NUMBER
, input1 varchar2(4000)
, input2 varchar2(4000)
)
AUTHID CURRENT_USER IS
sql_stmt VARCHAR2(4000);
BEGIN
sql_stmt := 'INSERT INTO temp VALUES ('
+ TOCHAR(ID,99) + ','
+ input1 + ','
+ input2
+ ')';
execute sql_stmt;
END MySP;
我的问题是:当五个用户同时运行SP时,他们会不会因为使用相同的全局临时表而彼此中断?
发布于 2015-12-24 09:05:24
全局临时指定全局临时,以指示表是临时的,其定义对于所有具有适当权限的会话都是可见的。临时表中的数据仅对将数据插入表的会话可见。
http://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF01402
https://dba.stackexchange.com/questions/124540
复制相似问题