为什么我读取数据库时出现:ORA-00600: 内部错误代码,参数: [ttcgcshnd-1], [0], [],错误?

net_spirit 2002-05-10 12:41:55
<%@page import="java.sql.*" %>
<%@page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="china" scope="page" class="chinese.ToChinese" />
<%
//连接数据库的变量声明*****************************
Connection conn = null; //数据库连接对象
ResultSet rssql = null; //结果集对象
ResultSet rs = null; //结果集对象
Statement stmt = null; //SQL语句对象
String strDBDriver="oracle.jdbc.driver.OracleDriver"; //数据库连接字符串
String strConnstr="jdbc:oracle:thin:@192.168.0.119:1521:mydata";
Class.forName(strDBDriver);
conn = DriverManager.getConnection(strConnstr,"system","manager");
stmt = conn.createStatement();
//end***********************************************************
//分页显示的变量声明*******************************
int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
intPageSize = 2; //设置一页显示的记录数
String strPage; //翻页时传递的页数值
String strsql; //标准sql语句 取得总的记录条数
String strone = ""; //标准sql语句 取总需要显示的问题
int i,j;
strPage = request.getParameter("page"); //取得待显示页码
if(strPage==null){ //表明在QueryString中没有page这一个参数,第一次进入此页,此时显示第一页数据
intPage = 1;
} else { //已经进入翻页显示
// strPage = request.getParameter("page");
intPage = Integer.parseInt(strPage);
if(intPage < 1) {
intPage = 1;
}
}

strsql = "select count(*) from tb_guest";
rssql = stmt.executeQuery(strsql);
rssql.next(); //记录集刚打开的时候,指针位于第一条记录之前
intRowCount = rssql.getInt(1); //取得总的记录数
out.println(intRowCount); //输入取得的总的记录数
rssql.close(); //关闭结果集

intPageCount = (intRowCount+intPageSize-1) / intPageSize; //记算总页数
if(intPage>intPageCount) intPage = intPageCount; //调整待显示的页码
//sql = "SELECT id,name,sex,title,to_char(writedate,'YYYY-MM-DD HH24:MI:SS') writedate FROM tb_guest WHERE flag='N'";
//sql = "select * from tb_guest where flag='N'";
//strone = "select count(*) from tb_guest";
strone = "select id from tb_guest"; 这一句是出错的,如果换成上面的一个
                    SQL语句,就不会出下面的错误!
out.println("<br>"+strone+"<br>");
rs = stmt.executeQuery(strone);
%>

:ORA-00600: 内部错误代码,参数: [ttcgcshnd-1], [0], [], [], [], [], [], []
...全文
365 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwd01 2002-05-14
  • 打赏
  • 举报
回复
jdbc版本问题,我们也碰到一样的问题,把数据库自带的classes12.jar加在classpath路径的最前面,则可以,如放后面则此驱动不起作用,且classes.zip不能用。
net_spirit 2002-05-11
  • 打赏
  • 举报
回复
我并不是想要做count(*)的,
我主要是想取出数据库中的记录内容,
而不是总的记录数,
总的记录数可以取出来,
但取不出记录的内容
hpq852 2002-05-11
  • 打赏
  • 举报
回复
如果换成上一个sql时正确,很显然是rs = stmt.executeQuery(strone);
这句出了问题,因为你两个ResultSet对象rssql和rs用的是同一个Statement的
对象stmt,解决办法,在生成一个Statement对象调用strone = "select id from tb_guest"; 就应该没问题了。
sunharck 2002-05-10
  • 打赏
  • 举报
回复
你的id 应该是 统计的分野记录数吧
sunharck 2002-05-10
  • 打赏
  • 举报
回复
rs.next 的stmt要加参数 stmt= conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
sunharck 2002-05-10
  • 打赏
  • 举报
回复
换成 select count(*) as id from tb_guest"; 试试
net_spirit 2002-05-10
  • 打赏
  • 举报
回复
我实在搞不明白什么原因,
就是用select * from tb_guest也会出错!
我不知道是因为数据库中有中文的问题,
能给个解决办法吗?
weidegong 2002-05-10
  • 打赏
  • 举报
回复
这一句是出错的,如果换成上面的一个SQL语句,就不会出下面的错误!

不会吧?就是没有id这个字段也不会出错

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧