从表中选择一个随机行 - DBMS_RANDOM.VALUE在从两个不同的用户执行时给出相同的行

时间:2017-06-08 18:45:33

标签: sql database oracle random

快速帮助人们! 我的应用程序需要从我的Oracle数据库中的表中随机获取大约200,000行的单个值。多个用户可能同时使用该应用程序,因此目的是让他们每次使用单击按钮时都看到不同的值。一旦使用了一行,将其标记为已使用并且不再使用它。 这是我正在使用的查询示例:

        SELECT
           MY_COLUMN
        FROM
               ( SELECT
                        MY_COLUMN
                 FROM
                        MY_TABLE
                 WHERE
                       COLUMN_STATUS = 'Not used'
                 ORDER BY
                        DBMS_RANDOM.VALUE )
             WHERE
                 ROWNUM = 1;

当我在单个用户上使用它时它会起作用,它每次都给我一个不同的值。但我做了一个测试,我在两台不同的机器上登录了两个不同的用户,然后点击了"按钮"在同一时刻,对于两个用户,我得到了相同的价值。我在这里错过了什么吗? DBMS_RANDOM.VALUE应该如何表现? 如果是,您是否有任何可以解决上述问题的建议。

谢谢, 感谢您的帮助!

0 个答案:

没有答案