oracle 11g中的并行性



我对oracle有疑问,例如,如果您在oracle中有一个函数,那么该函数将接收一个整数参数。

功能测试(参数IN编号(

  • 当我发送param=1->返回100
  • 当我发送param=2->返回300
  • 当我发送param=3->返回200

如果三个或三个以上的用户同时执行测试功能会发生什么,结果是什么?

用户1:

select test(1) from dual;

用户2:

select test(3) from dual;

用户3:

select test(2) from dual;

每个用户得到不同的结果?,尽管功能是在的同时执行

如果您有以下功能:

CREATE FUNCTION test ( param IN NUMBER ) RETURN NUMBER
IS
BEGIN
RETURN CASE param
WHEN 1 THEN 100
WHEN 2 THEN 300
WHEN 3 THEN 200
END;
END;
/

然后运行:

SELECT test(1),
test(2),
test(3)
FROM   DUAL;

输出:

TEST(1(| TEST(2(|TEST(3(------:|------:|------100|300|200

如果您想设置计划作业,以便3个用户同时运行查询,那么您会发现结果是相同的,并且每个用户都得到不同的输出。

db<gt;小提琴这里

最新更新