调用下面存储过程 出现 读取顺序错误的 提示,
大家帮忙看下 谢谢~~!PROCEDURE RetrieveNonblockingInstanceIds
(
p_OWNER_ID IN INSTANCE_STATE.OWNER_ID%TYPE := NULL
,p_OWNED_UNTIL IN INSTANCE_STATE.OWNED_UNTIL%TYPE := NULL
,p_NOW IN DATE
,p_WORKFLOW_IDS OUT RefCursor
)
AS
BEGIN
OPEN p_WORKFLOW_IDS FOR
SELECT
INSTANCE_ID
FROM
INSTANCE_STATE
WHERE
BLOCKED = 0
AND STATUS NOT IN (c_STATUS_COMPLETED, c_STATUS_SUSPENDED, c_STATUS_TERMINATED)
AND (OWNER_ID IS NULL OR OWNED_UNTIL < p_NOW)
FOR UPDATE; IF NVL(SQL%ROWCOUNT, 0) > 0
THEN
UPDATE INSTANCE_STATE
SET
OWNER_ID = p_OWNER_ID
,OWNED_UNTIL = p_OWNED_UNTIL
WHERE
BLOCKED = 0
AND STATUS NOT IN (c_STATUS_COMPLETED, c_STATUS_SUSPENDED, c_STATUS_TERMINATED)
AND (OWNER_ID IS NULL OR OWNED_UNTIL < p_NOW);
END IF;
END;
大家帮忙看下 谢谢~~!PROCEDURE RetrieveNonblockingInstanceIds
(
p_OWNER_ID IN INSTANCE_STATE.OWNER_ID%TYPE := NULL
,p_OWNED_UNTIL IN INSTANCE_STATE.OWNED_UNTIL%TYPE := NULL
,p_NOW IN DATE
,p_WORKFLOW_IDS OUT RefCursor
)
AS
BEGIN
OPEN p_WORKFLOW_IDS FOR
SELECT
INSTANCE_ID
FROM
INSTANCE_STATE
WHERE
BLOCKED = 0
AND STATUS NOT IN (c_STATUS_COMPLETED, c_STATUS_SUSPENDED, c_STATUS_TERMINATED)
AND (OWNER_ID IS NULL OR OWNED_UNTIL < p_NOW)
FOR UPDATE; IF NVL(SQL%ROWCOUNT, 0) > 0
THEN
UPDATE INSTANCE_STATE
SET
OWNER_ID = p_OWNER_ID
,OWNED_UNTIL = p_OWNED_UNTIL
WHERE
BLOCKED = 0
AND STATUS NOT IN (c_STATUS_COMPLETED, c_STATUS_SUSPENDED, c_STATUS_TERMINATED)
AND (OWNER_ID IS NULL OR OWNED_UNTIL < p_NOW);
END IF;
END;
解决方案 »
- 有关start.bat和stop.bat的疑问
- 麻烦帮我写一条SQL语句
- 紧急!PL/SQL中对查询结果关联显示的问题!!!
- oracle 10.1配置 taf 失败
- 关于plsql 编译procedure的奇怪问题!!
- 如何在存储过程执行中,利用dbms_output.put_line输出值?
- 对创建脚本一点不懂,特地来问
- oracle的函数new_time()里面有多少个时区和标志各是什么?
- 关于SUBSTR的问题:ora-01722:无效数字
- insert into 效率极其慢, 3000多条数据新增所需 19 分钟
- 大家帮我看看,这后面的{0},{1},{2},{3}
- 更新不同主机上的ORACLE 数据库中的两张表,怎样保证在一个事务中
假如for update这里锁了3条,在if的时候,有别的会话插了一条刚好满足条件,则下面的更新会不会有4条啊。
select ………
begin
open c_cursorname;
………end;
Action:Parse and execute a SQL statement before attempting to fetch the data.