您的位置:程序门 -> java -> web 开发



在jsp中有关使用查询语句的问题?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


在jsp中有关使用查询语句的问题?[已结贴,结贴人:norwolves]
发表于:2007-03-22 16:38:56 楼主
我的数据库(oracle)中,其中有一个字段里面的数据有重复的,我想要取出其中的数据(即不允许有重复的数据出现),我用的sql语句是
select   distinct   ck   from   table1;
但是当我执行的时候,提示有错误,数据库连接时失败,(我在代码中使用try,catch).

可是,我要是把sql语句中的   distinct   去掉,就没有毛病了,但是要求不能有重复的,我应该怎么改正啊!!!
谢谢!!!
发表于:2007-03-22 16:40:321楼 得分:0
报什么错误啊
发表于:2007-03-22 16:43:172楼 得分:0
错误提示为:

java.sql.sqlexception:   [microsoft][odbc   driver   for   oracle]不能在包含   union,intersect   或   minus   子句的连接中以及只读结果集中使用键集驱动的光标
发表于:2007-03-22 16:44:453楼 得分:0
你怎么用oracle   还用   odbc的driver  

换成oracle的jdbc   driver   把货得数据库连接的方式改一下   就可以;
发表于:2007-03-22 16:49:524楼 得分:0
我这用的oracle是oracle8,我配完那个classes12.zip驱动,用thin去连,告诉我连接失败,我改明白.所以就用jdbcodbc了
我想知道到,这两种连接数据库的方法,对那条查询语句有影响吗?
发表于:2007-03-22 16:54:305楼 得分:0
应该是驱动的原因
发表于:2007-03-22 16:57:116楼 得分:0
换个驱动试下看看,可能你的classes12.zip那个jdbc驱动版本不对,到sun上去下载一个对应版本的
发表于:2007-03-22 16:58:087楼 得分:0
那应该怎么解决啊?
你说用jdbc-odbc桥接不可以吗?
连oracle8的驱动应该怎么获得啊
我那个是在网上找了很长时间才找到的,感觉找8的驱动费尽死了
发表于:2007-03-22 17:05:498楼 得分:0
用thin   连接的时候报什么错误

发表于:2007-03-23 08:36:559楼 得分:0
用thin连接的时候,提示这个错误信息:java.sql.sqlexception:   ora-00604:   error   occurred   at   recursive   sql   level   1   ora-02248:   invalid   option   for   alter   session  

这个是什么错误啊?
发表于:2007-03-23 08:50:1910楼 得分:0
帮顶,学习一下~
发表于:2007-03-23 09:02:1211楼 得分:0
你把查询的那段代码拿出来看一下。可以换一个查询方式
发表于:2007-03-23 09:20:0212楼 得分:0
我一同事碰到了一个跟楼主相似的问题,用了distinct后还是有重复数据,最后是在driver-url
后面加个什么配置,我觉得你的问题应该差不多。。。
发表于:2007-03-23 10:07:5713楼 得分:0
请问怎么样更换查询方式,查询不重复的记录时,不就只能用distinct   这个吗?还有别的方法吗?


请问:zunshanke2004这位人兄,driver-url,应该怎么写啊?
发表于:2007-03-23 13:18:4014楼 得分:0
我想问一下连接数据库的时候,必须是用数据库的管理员的帐户和密码吗?
我用的是对那个表空间有操作权限的用户,这个对连接数据库操作有影响吗?
发表于:2007-03-23 14:10:1915楼 得分:0
没有影响的。
对了兄弟,你可以换个语句试试:
select   ck   from   table1   group   by   ck;
这样查询出来的结果是一样的,你试一下看看这个能不能执行。
再则,你也可以用oracle自的sql查询器来分别查一下这三个语句,看它直接在里面运行会不会出错!
发表于:2007-03-23 14:59:5916楼 得分:100
这是驱动的问题,微软技术文档中明确说明,没有解决办法,只有更换驱动

症状
当与   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   驱动程序没有解决方法。
发表于:2007-03-23 16:03:4217楼 得分:0
那oracle8,可以用thin这种方法连接吗?
我怎么没有在oracle8中找到classes12.jar的驱动程序呢?
请问应该如何解决这个问题?
发表于:2007-03-23 16:15:0818楼 得分:0
select   ck   from   table1   group   by   ck;
这样不就解决了。。。。人不能被憋死啊。。。。。。。
发表于:2007-03-23 16:27:2319楼 得分:0
接分
发表于:2007-03-23 16:28:2220楼 得分:0
select   ck   from   table   group   by   ck;
要是好使不就好了,还是不行,也不知道是为什么啊?
发表于:2007-03-23 16:33:0321楼 得分:0
oracle8官方已经声明不维护了,如果出了任何问题都跟甲骨文无关

lz还是更新下数据库吧,用8迟早会出现这样那样的问题
发表于:2007-03-23 16:38:4522楼 得分:0
你直接把你的sql语句或select   ck   from   table1   group   by   ck这个在oracle8里运行也不能执行吗??还是驱动的问题?
发表于:2007-03-24 11:08:5223楼 得分:0
在oracle8里,能执行并且显示的结果是正确的,驱动,我用的是classes12.jar,能有什么解决的办法吗?希望给提供一下,谢谢!!!


快速检索

最新资讯
热门点击