我的数据库(oracle)中,其中有一个字段里面的数据有重复的,我想要取出其中的数据(即不允许有重复的数据出现),我用的sql语句是
select distinct ck from table1;
但是当我执行的时候,提示有错误,数据库连接时失败,(我在代码中使用try,catch).可是,我要是把sql语句中的 distinct 去掉,就没有毛病了,但是要求不能有重复的,我应该怎么改正啊!!!
谢谢!!!

解决方案 »

  1.   

    错误提示为:java.sql.SQLException: [Microsoft][ODBC driver for Oracle]不能在包含 union,intersect 或 minus 子句的连接中以及只读结果集中使用键集驱动的光标
      

  2.   

    你怎么用oracle 还用 odbc的driver 换成Oracle的jdbc driver 把货得数据库连接的方式改一下 就可以;
      

  3.   

    我这用的oracle是oracle8,我配完那个classes12.zip驱动,用thin去连,告诉我连接失败,我改明白.所以就用jdbcodbc了
    我想知道到,这两种连接数据库的方法,对那条查询语句有影响吗?
      

  4.   

    换个驱动试下看看,可能你的classes12.zip那个jdbc驱动版本不对,到sun上去下载一个对应版本的
      

  5.   

    那应该怎么解决啊?
    你说用jdbc-odbc桥接不可以吗?
    连oracle8的驱动应该怎么获得啊
    我那个是在网上找了很长时间才找到的,感觉找8的驱动费尽死了
      

  6.   

    用thin 连接的时候报什么错误
      

  7.   

    用thin连接的时候,提示这个错误信息:java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 ORA-02248: invalid option for ALTER SESSION 这个是什么错误啊?
      

  8.   

    我一同事碰到了一个跟楼主相似的问题,用了distinct后还是有重复数据,最后是在driver-url
    后面加个什么配置,我觉得你的问题应该差不多
      

  9.   

    请问怎么样更换查询方式,查询不重复的记录时,不就只能用distinct 这个吗?还有别的方法吗?
    请问:zunshanke2004这位人兄,driver-url,应该怎么写啊?
      

  10.   

    没有影响的。
    对了兄弟,你可以换个语句试试:
    select ck from table1 group by ck;
    这样查询出来的结果是一样的,你试一下看看这个能不能执行。
    再则,你也可以用ORACLE自的SQL查询器来分别查一下这三个语句,看它直接在里面运行会不会出错!
      

  11.   

    这是驱动的问题,微软技术文档中明确说明,没有解决办法,只有更换驱动症状
    当与 Microsoft ODBC 对 Oracle 驱动程序, 使用 SELECTDISTINCT 语句可能发生以下错误: 
    DIAG HYC00 ] [ [ Microsoft ] [ ODBC 驱动程序用于 Oracle ] 无法用于联接, 带有不同子句, 键集驱动游标联合, 相交或减或读取只结果集 (0) 
    回到顶端原因
    用于 Oracle 驱动程序 Microsoft ODBC 使用 ROWID, 它分配一个唯一 ID 对于每一行隐藏 Oracle 列。 由于对此求反唯一性约束由 DISTINCT 关键字, 施加驱动程序发出上述错误而不将返回多份相同数据。 
    回到顶端解决方案
    因为使用 DISTINCT 时提供程序不使用 ROWID 列如果需要使用 DISTINCT 关键字, 您可以使用 Microsoft OLE DB Provider 用于 Oracle。 有关其他信息, 请单击下面以查看 Microsoft 知识库中相应文章编号: 
    258997 (http://support.microsoft.com/kb/258997/EN-US/) INFO: Oracle OLE DB Provider 和 ROWID 使用 
    没有针对此行为与 Microsoft ODBC 对 Oracle 驱动程序没有解决方法。
      

  12.   

    那oracle8,可以用thin这种方法连接吗?
    我怎么没有在oracle8中找到classes12.jar的驱动程序呢?
    请问应该如何解决这个问题?
      

  13.   

    select ck from table1 group by ck;
    这样不就解决了。人不能被憋死啊。
      

  14.   

    select ck from table group by ck;
    要是好使不就好了,还是不行,也不知道是为什么啊?
      

  15.   

    ORACLE8官方已经声明不维护了,如果出了任何问题都跟甲骨文无关LZ还是更新下数据库吧,用8迟早会出现这样那样的问题
      

  16.   

    你直接把你的SQL语句或select ck from table1 group by ck这个在Oracle8里运行也不能执行吗??还是驱动的问题?
      

  17.   

    在oracle8里,能执行并且显示的结果是正确的,驱动,我用的是classes12.jar,能有什么解决的办法吗?希望给提供一下,谢谢!!!