JDBC中游标返回类型设置问题

goolsdu 2005-09-01 04:43:34
代码如下:

import java.sql.*;
import java.sql.Types;

public class Test4 {

public static void main(String[] args) {
Connection con=null;

try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){System.out.println("class.forname");}
try
{ con= DriverManager.getConnection("jdbc:oracle:thin:@172.16.7.9:1521:DB","pm","pm");
CallableStatement cstmt=con.prepareCall("{ call gzz_kessaibunsyorefer.pst_getsheetlist(?,?,?,?,?)}");

cstmt.setString(1,"A04000000002");
cstmt.setString(2,"02");
cstmt.setString(3,"0501");

cstmt.registerOutParameter(4,Types.OTHER);

cstmt.registerOutParameter(5,Types.VARCHAR);
cstmt.execute();
String permission=cstmt.getString(5);
System.out.println(permission);

con.close();
}
catch(SQLException e1){
e1.printStackTrace();
System.out.println("DB_error");}
}
}
运行时的错误如下:
java.sql.SQLException: 列の型が無効です。
at oracle.jdbc.dbaccess.DBError.throwSqlException(Ljava.lang.String;Ljava.lang.String;I)V(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(ILjava.lang.Object;)V(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(I)V(DBError.java:269)
at oracle.jdbc.driver.OracleStatement.get_internal_type(I)I(OracleStatement.java:6433)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterBytes(IIII)V(OracleCallableStatement.java:244)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(IIII)V(OracleCallableStatement.java:393)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(II)V(OracleCallableStatement.java:462)
at jp.co.nttdata.infogrid.prompt.business.anken.paz_pr0305._009.Test4.main([Ljava.lang.String;)V(Test4.java:35)
DB_error

请高手指点一下,不胜谢意
...全文
209 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
goolsdu 2005-09-05
  • 打赏
  • 举报
回复
3ks
ChDw 2005-09-02
  • 打赏
  • 举报
回复
Oracle的JDBC驱动程序啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!
当然是classes12.zip/jar啦,包名都有了还不清楚???
goolsdu 2005-09-02
  • 打赏
  • 举报
回复
能不能说的明确一点啊,别说的这么概括可以嘛?
pdw2009 2005-09-01
  • 打赏
  • 举报
回复
weblogic里有,,oracle 的jdbc驱动里有..
goolsdu 2005-09-01
  • 打赏
  • 举报
回复
请继续帮忙,这个该从哪个包里import呢?

oracle.jdbc.OracleTypes.CURSOR
rower203 2005-09-01
  • 打赏
  • 举报
回复
Japanese?
goolsdu 2005-09-01
  • 打赏
  • 举报
回复
注,存储过程中前3个是输入参数都是char型,后两个是输出,其中一个是游标类型,还有一个是varchar2类型
ChDw 2005-09-01
  • 打赏
  • 举报
回复
cstmt.registerOutParameter(4,Types.OTHER);
如果你这个是返回CURSOR类型的则改成

cstmt.registerOutParameter(4,oracle.jdbc.OracleTypes.CURSOR);

62,628

社区成员

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

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