日期:2014-05-17  浏览次数:20844 次

Oracle使用游标放回结果集出现怪异问题
表结构:
 id name remark
---------------------
 a ha 标记
 a wo null
 a me null
 d co null
--------------------
存储过程:
create or replace procedure Get
(
  Ids IN VARCHAR2,
  Out_Cursor OUT sys_refcursor
)
as 
begin
  open Out_Cursor FOR
  select * from table where id=ids;
end;
------------------------------------
测试结果:ids-〉a
 id name remark
---------------------
 a ha 标记
 a wo null
 a me null
 d co null
-------------------
为什么会出现这样的结果呢?明明参数传人的是a却把id为d的也查出来了,请问这是怎么回事?
  


------解决方案--------------------
实测数据:
SQL code

CREATE TABLE T192
(
    ID VARCHAR2(20),
    NAME VARCHAR2(20),
    remark VARCHAR2(20)
);

INSERT INTO T192 VALUES('a', 'ha', '标记');
INSERT INTO T192 VALUES('a', 'wo', NULL);
INSERT INTO T192 VALUES('a', 'me', NULL);
INSERT INTO T192 VALUES('d', 'co', NULL);
COMMIT;