java.sql.SQLException: ORA-00600: 内部错误代码,参数: [ttcgcshnd-1], [0], [], [], [], [], [], []
我的代码如下:
sql = "select max(strid) from table1";
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(selSQL);
其中的strid是char(20)类型,后台使用的是oracle数据库,当执行到executeQuery的时候就报出标题给出的错误,但是我在SQLPlus里面执行这个SQL语句就没有问题,为什么?
问题点数:20、回复次数:14Top
1 楼makepage79(重新做人)回复于 2003-08-01 12:04:32 得分 0
你的语句包含了中文了吗:)??Top
2 楼zeeler(鸭子)回复于 2003-08-01 12:08:06 得分 0
你把前面的连接数据库的代码都贴出来看看,可能有问题Top
3 楼wangxian()回复于 2003-08-01 12:18:28 得分 5
JDBC驱动不对,比如9的JDBC就不能用8的JDBCTop
4 楼Cheryl(小白)回复于 2003-08-01 13:02:27 得分 0
前面的连接代码是:
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
String database = "jdbc:oracle:thin:@" + m_hostname + ":" + m_port + ":" + m_sid;
conn = (OracleConnection)DriverManager.getConnection(database, m_user, m_password);
}catch(Exception e) {
return false;
}
经过验证连接成功。
我的JDBC是8i的,但是打过补丁了,oracle声称可以使用它连接到9i;数据库是9i的,我是通过客户端连接的,客户端是8i的。
Top
5 楼Cheryl(小白)回复于 2003-08-01 13:20:36 得分 0
我用8i的jdbc和9i的jdbc都试了,报同样的错误。Top
6 楼wolfofhill(狼见愁)回复于 2003-08-01 13:28:16 得分 0
sql = "select max(strid) from table1";
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(selSQL);
我有点不明白,executeQuery()中搂主是不是要放第一行定义的sql变量呀?为什么放进selSQL了?哪是什么呀?是这里出错了吧Top
7 楼Cheryl(小白)回复于 2003-08-01 13:38:00 得分 0
是我敲错了,变量就是selSQL:
selSQL = "select max(strid) from table1"Top
8 楼jsnicle(js_nicle)回复于 2003-08-01 13:44:21 得分 0
楼主试一下这一句,应该可以了
selSQL = "select max(strid) from table1 order by strid"Top
9 楼wolfofhill(狼见愁)回复于 2003-08-01 13:46:41 得分 0
能不能看看楼主定义conn的代码Top
10 楼Cheryl(小白)回复于 2003-08-01 13:54:12 得分 0
Connection conn = null;Top
11 楼wolfofhill(狼见愁)回复于 2003-08-01 13:59:14 得分 0
拜托呀,明显没有加数据驱动呀,怎么能连接成功?底下的是Oracle的驱动,给个例子:
<%
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@URL:Name","id","password");
Statement stmt= con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String SQL= new String();
%>Top
12 楼Cheryl(小白)回复于 2003-08-01 14:34:24 得分 0
跟这个没有关系,createStatement的参数都有默认值的,参数是用来设置连接属性的,即使没有也可以正常执行。问题仍然没有解决。Top
13 楼orant(仗剑走天涯)回复于 2003-08-03 16:04:47 得分 5
你的驱动程序用的是错误的。我在用JDeveloper3连接oracle9i时出现同样错误。原因就是JDBC8.1.7不能驱动ORACLE9ITop
14 楼poppop(光盘)回复于 2003-08-03 17:47:34 得分 10
这个错误肯定是jdbc版本造成的
你是怎样加的驱动包?估计你没有使用应用服务器带的驱动,而是使用了oracle里的驱动包。
如果可能,尽量使用应用服务器带的驱动程序并配置应用服务器的连接池,例如weblogic自带的9i驱动。
以下都是针对oracle安装目录中的jdbc驱动:
8i的客户端打过补丁可以正常连接到9i服务器端,但是程序在调用该8i的jdbc访问9i就会出错。
9i的客户端可以正常连接8i服务器端,程序调用9i的jdbc也可以正常访问8i数据库。
Top




