我有一个关于引用游标的问题,并在返回它们的内容之前更新它们包含的行。 具体做法是:更新Oracle中参考光标返回的行
让我们说,我有一个表“人”与以下条目:
Id FirstName LastName Status 3 John struth pending 4 Mark roberts pending 1 George jobs pending 2 George Einstein working
其中id是主键。
,我有一个Oracle PL/SQL过程看起来像这样:
PROCEDURE p_get_2_pending_people(p_result OUT REF CURSOR)
BEGIN
OPEN p_result FOR
SELECT * from PEOPLE p
WHERE p.Status = 'pending'
AND rownum <=2;
END p_get_2_pending_people;
这将退还给我2个随机排了3可用的。 但是我也想标记这两行同时工作。 我想知道我该怎么做。如果我首先将它们标记为正在工作并且 然后尝试返回它们,则光标不会返回任何内容。如果我第一个 用光标获取它们,然后我写同样的东西来更新 他们我不能保证相同的2行将被带回 (在3个可用的挂起行中)。最后,如果我更新光标的内容 ,那么当我的过程向调用者返回 结果时,光标将为空。
感谢
编辑:我添加了表
是否有该表的唯一键? –
是的,只是在例子 –