遇到一个奇怪的问题,在form开发时,其中有个cursor,select出来的东西明明就是重复的,是那种连rowid都一样的重复,但form挂上后,执行出来的结果却像是被distinct掉了,没有重复,这是为什么呢,CURSOR可以自动去重复吗?

解决方案 »

  1.   

    cursor不会自动去除重复的值的。
      

  2.   

    不可以自动去重复,楼主可以把查询的SQL拿到PLSQL之类的工具上执行下,如果出现重复就是SQL本身有问题,否则去找下开发环境是不是有问题。
      

  3.   

    SQL语句确实是有问题的,我只是不明白为什么运行出来的结果却没有问题
    举个例子,实际应该只有两笔数据,而查出的结果是4笔
    我程式是先用cursor查出4笔数据,然后打开cursor一笔一笔取出,以record的方式写入到form的block中,但是在系统中运行时,却只显示出两笔数据,没有重复项了好怪异!
      

  4.   

    偶猜测有这么一种可能,你代码里处理cursor的循环方式不是do while循环,而是for()循环,并且for循环的count是采用的select count(*) from table从数据库取的值。这样cursor循环时实际上没有完全执行完所有的记录。
      

  5.   

    -- 去不去重,跟你游标定义的SQL语句有关,跟你的游标本身无关!
    -- SQL 语句返回的是什么结果集,游标就会处理什么结果集!