oracle 存储过程 读取顺序错误
调用下面存储过程 出现 读取顺序错误的 提示,
大家帮忙看下 谢谢~~!
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;
详细错误提示?
ORA-01002: 读取违反顺序
应该使用sys_refcursor
弱弱的提个疑问:
假如for update这里锁了3条,在if的时候,有别的会话插了一条刚好满足条件,则下面的更新会不会有4条啊。
Cause In a host language program, a FETCH call was issued out of sequence. A successful parse-and-execute call must be issued before a fetch. This can occur if an atte
相关问答:
大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
大家好,我现在把oracle服务器上面 ......
请问这个缓冲池是怎么回事啊?可以连接缓冲池利用其中的数据吧?怎么用?
这个是oracle自动做的,一般应用程序是操作不了的。
不能直接连接吗?
引用
不能直接连接吗?
不能
那缓冲池里的数据也不能查询 ......
各位oracle高手,请教一下为什么oracle 10g在安装到百分之八十五的时候就报错不能继续安装?
内存多大? 重新下个数据库安装试试..
引用
各位oracle高手,请教一下为什么oracle 10g在安装到百分之八十五的时 ......
在执行包的时候引用oracle spatial空间函数出错,出错情况如下
Errors in file
/user/oracle/app/oracle/admin/grid/udump/grid1_ora_143768.trc: ORA-29902:
error in executing ODCIIndexStart() routine ORA-0 ......
各位大哥,帮个忙。
下个Oracle for vista 版本的安装试试
10G和11G的
http://www.oracle.com/technology/software/products/database/index.html
------------------------------------------- ......