SELECT serialno,
partid,
filepath,
staffno,
recordtime
INTO t_serialno,
t_partid,
t_filepath,
t_staffno,
t_recordtime
FROM
(SELECT COUNT(serialno) AS t_count,serialno,partid,filepath,staffno,recordtime
FROM MyTable
WHERE substr(serialno,1,8)='20060906'
AND partid=substr('20060906',5,4)
GROUP BY serialno,partid,staffno,filepath,recordtime)
WHERE t_count>1 AND rownum=1;
以上语句去掉INTO在PL/SQL DEVELOP里执行是成功的,但加上INTO在存储过程里总是异常抛出错误,好郁闷啊,到底是怎么回事?高手们帮帮忙。
错误号是:ORA-01403 和ORA-06512
partid,
filepath,
staffno,
recordtime
INTO t_serialno,
t_partid,
t_filepath,
t_staffno,
t_recordtime
FROM
(SELECT COUNT(serialno) AS t_count,serialno,partid,filepath,staffno,recordtime
FROM MyTable
WHERE substr(serialno,1,8)='20060906'
AND partid=substr('20060906',5,4)
GROUP BY serialno,partid,staffno,filepath,recordtime)
WHERE t_count>1 AND rownum=1;
以上语句去掉INTO在PL/SQL DEVELOP里执行是成功的,但加上INTO在存储过程里总是异常抛出错误,好郁闷啊,到底是怎么回事?高手们帮帮忙。
错误号是:ORA-01403 和ORA-06512
你先count(1)看看有结果在select into(隐式光标)
必须要求你的select语句至少要能查到且只能查到1条数据
否则就会出意外
怎么还有问题?
INTO ll_count
FROM table
group by serialno, partid, filepath, staffno, recordtime
if ll_count = 1 then
处理一对一的纪录。
end if
if ll_count = 1 then
处理一对一的纪录。
end ifif ll_count > 1 then
该如何处理?(照这样说依然有隐式光标的问题)
end if