首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

java操作oracle存储过程出错,请各位帮忙看下错在哪里,本人小白,多谢

2013-09-05 
java操作oracle存储过程出错,请各位帮忙看下错在哪里,本人小白,谢谢java代码:package com.tiangang.texti

java操作oracle存储过程出错,请各位帮忙看下错在哪里,本人小白,谢谢
java代码:
package com.tiangang.text;

import java.sql.*;

public class Testprocedure2 {

//调用pro1过程
public static void main(String[] args) {


//定义需要的变量
Connection ct =null;
CallableStatement cs=null;
ResultSet rs= null;
try{
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//得到链接
ct=DriverManager.getConnection
("jdbc:oracle:thin:@127.0.0.1:1521:orcltg","scott","tiger");
//创建CallableStatement
cs=ct.prepareCall("{call pro1(?,?}");
//给第一个?赋值
cs.setInt(1, 10);
//给第二个?进行注册,因为是输出值
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
//执行
cs.execute();
rs=(ResultSet)cs.getObject(2);
//取出输出值
while(rs.next()){
System.out.println(rs.getString("ename"));
System.out.println(rs.getString("sal"));
}

}catch(Exception e){
e.printStackTrace();
}finally{

}
}
}


存储过程代码:
--创建一个包,该包中定义一个游标类型
create or replace package pack1 is
--定义一个游标数据类型
type my_cursor is ref cursor;
end;

--2.编写过程
create or replace procedure pro1
(v_in_deptno in number,v_out_result out pack1.my_cursor) is
begin
  open v_out_result for select * from emp where deptno=v_in_deptno;
--为了让java程序可以使用游标,不能在这里关闭游标
end;

eclipse报错提示信息:
java.sql.SQLException: ORA-06550: 第 1 行, 第 17 列: 
PLS-00103: 出现符号 ";"在需要下列之一时:
 . ( ) , * @ % & | = - + < / >
   at in is mod remainder not range rem => .. <an exponent (**)>
   <> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_
   between || indicator multiset member SUBMULTISET_
符号 ")" 被替换为 ";" 后继续。

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:218)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:971)


at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1192)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3415)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3521)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4612)
at com.tiangang.text.Testprocedure2.main(Testprocedure2.java:28)


[解决办法]
mianTestprocedure2 的第28行。。sql异常

热点排行