jsp中向数据库插入数据报错!!!

chtfallcn 2004-08-26 03:20:27
我在jsp中读取excel表中的数据,然后插入到oracle数据库中,报错如下:

java.sql.SQLException: ORA-00001: ???????? (TABLECHT.SYS_C001133)

oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542)
oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1311)
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:738)
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1313)
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1232)
oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:1353)
oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1760)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1805)
oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:575)
org.apache.jsp.read_005fwrite_jsp._jspService(read_005fwrite_jsp.java:104)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)



请问是不是访问数据库的用户名/密码(tablecht/tablecht)错误???
但是我在其他的程序中使用这个用户名/密码访问数据库还是可以用的。

请各位大哥指教!!!
...全文
145 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
himacs 2004-08-28
ORA-00001的意思是存在相同的主键值
首先检查一下sql语句插入的值有没有问题
再看看数据表的定义有没有问题
回复
himacs 2004-08-27
把生成的SQL语句显示出来仔细查看一下吧
回复
chtfallcn 2004-08-27
sql语句我试过了,没有问题
现在他不用循环插入可以,就是一使用循环就报错
java.sql.SQLException: ORA-00001: ???????? (TABLECHT.SYS_C001133)

这句话什么意思啊?

TABLECHT.SYS_C001133 这个指的是什么啊?
回复
AgathaZ 2004-08-27
你把每个Integer.parseInt(strc[j-1][i])显示出来
然后放到insert语句中输出来,自已手动执行一下,看有没有错!
回复
HITZXL 2004-08-27
错误提示执行SQL语句有误
stm.execute();
-----------------就这句;
确认前面的每个?号都赋值
回复
chtfallcn 2004-08-27
看过了啊,没有问题,而且不用循环语句的话就没问题,怎么一用循环语句就出问题啊???
回复
sboom 2004-08-26
不懂ORACAL,帮顶而已。
回复
chtfallcn 2004-08-26
怎么没人来啊???
回复
chtfallcn 2004-08-26
to : jeoky(jeoky) 代码如下,谢谢!

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" import="java.io.*" import="jxl.*" import="jxl.write.*" import="java.util.*"%>
<html>
<body>
<%request.setCharacterEncoding("GB2312");%>

<%

jxl.Workbook workbook = Workbook.getWorkbook(new FileInputStream("D:\\Tomcat 5.0\\first.xls"));
Sheet rs = workbook.getSheet("first Sheet");
%>

<%
int totles_rows=rs.getRows();
int totles_columns=rs.getColumns();
%>

<%
Cell c[][]=new Cell[totles_columns][totles_rows];
String strc[][]=new String[totles_columns][totles_rows];

for(int i=0;i<totles_rows;i++){
for(int j=0;j<totles_columns;j++){

c[j][i] = rs.getCell(j, i);
strc[j][i] = c[j][i].getContents();
}
}
workbook.close();
%>

<%
String url="jdbc:oracle:thin:@localhost:1521:dbcht";
String userid="tablecht";
String pwd="tablecht";

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection con=DriverManager.getConnection(url,userid,pwd);
PreparedStatement stm=con.prepareStatement("insert into machine values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

for(int i=1;i<totles_rows;i++){
for(int j=1;j<totles_columns+1;j++){

if(j==1){
stm.setInt(j,Integer.parseInt(strc[j-1][i]));
}
else if(j==13){
stm.setInt(j,Integer.parseInt(strc[j-1][i]));
}
else{
stm.setString(j,strc[j-1][i]);
}
}
stm.execute();
}
stm.close();
con.close();
%>

<p align=center>
插入成功,请返回<a href="excel_index.jsp">主页面</a>
</p>
</body>
</html>
回复
jeoky 2004-08-26
贴代码!
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-26 03:20
社区公告
暂无公告