java程序去调用oracle的存储过程时出错

锋叔子 2012-03-23 12:25:54
//演示java程序去调用oracle的存储过程

package uncle.crazy;
import java.sql.*;
public class TestOracePro {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.得到连接
Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:MLDN","scott","tiger");
//3.创建CallableStatement
CallableStatement cs=ct.prepareCall("{call sp_pr4(?,?)}");
//4.给?赋值
cs.setString(1,"SMITH");
cs.setInt(2,10);
//5.执行
cs.execute();
//关闭
cs.close();
ct.close();
}
catch(Exception e) {
e.printStackTrace();
}
}


}
注明:已经在plsql中建立了存储过程sp_pr4

...全文
204 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
锋叔子 2012-05-05
  • 打赏
  • 举报
回复
我晕存储过程有咩有编译成功我会不知道吗?它如果没脸上数据库也是有可能找不到这个存储过程啊?不一定怪这个存储过程?而且问题已经解决了 ,确实是jdbc没连上
forgetsam 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

我晕存储过程有咩有编译成功我会不知道吗?它如果没脸上数据库也是有可能找不到这个存储过程啊?不一定怪这个存储过程?而且问题已经解决了 ,确实是jdbc没连上
[/Quote]
你去把数据库关了看它报什么错。
forgetsam 2012-04-16
  • 打赏
  • 举报
回复
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'SP_PR4' must be declared
ORA-06550: line 1, column 7:

"127.0.0.1:1521:MLDN","scott","tiger"
上面的代码清晰无误的表达了:


本机MLDN数据库的SCOTT用户下不存在通过编译且名为SP_PR4的存储过程

不要说什么“存储过程经过编译了也没有错误”,程序不会谎报军情,调错只看程序。
锋叔子 2012-04-15
  • 打赏
  • 举报
回复
--存储过程如下,编译没错误
create or replace procedure sp_pr4(spName varchar2,newsal number) is
begin
--执行部分,根据用户名去修改工资
update scott.emp set sal=newSal where ename=spName;
end;
/
锋叔子 2012-04-15
  • 打赏
  • 举报
回复
存储过程是编译过了的,也没有错误
我是睡 2012-03-26
  • 打赏
  • 举报
回复
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'SP_PR4' must be declared
ORA-06550: line 1, column 7:

已经很明显的错误了!

你的SP_PR4这个存储过程编译有错误!
「已注销」 2012-03-25
  • 打赏
  • 举报
回复
把procedure编译通过了 再在java中调用
终端用户 2012-03-24
  • 打赏
  • 举报
回复
你看,错误都报出来了,你的存储过程没有什声明啊!
你确定DB中没有问题,贴出来瞧下吧
啊彪123 2012-03-23
  • 打赏
  • 举报
回复
报什么错,不要让我们猜测
锋叔子 2012-03-23
  • 打赏
  • 举报
回复
报错如下:
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'SP_PR4' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:622)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:179)
at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:782)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2887)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2978)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4102)
at uncle.crazy.TestOracePro.main(TestOracePro.java:23)

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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