我们现在用的job平台 定时调用后端的执行存储过程的代码。代码是Spring的jdbcTemplate写的最后只是拼成 call function_name() 这样的sql并执行。但是时好时坏的
失败的话会报:org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [call CP_PLC_ACC()]; nested exception is java.sql.SQLException: ORA-06576: not a valid function or procedure name.但是检查数据库端 发现这个存储过程是有且有权限调用的。而且上面还成功过两次。plsql端也可以调用成功
失败的话会报:org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [call CP_PLC_ACC()]; nested exception is java.sql.SQLException: ORA-06576: not a valid function or procedure name.但是检查数据库端 发现这个存储过程是有且有权限调用的。而且上面还成功过两次。plsql端也可以调用成功
解决方案 »
- oracle PLSQL 中cursor 可以作为函数的参数吗?下边有例子。
- 请高手帮帮忙,查询重复和删除重复
- Oracle怎样修改XML节点名称?全部的分都拿来了 Help~~
- 请问谁能解决这个程序问题.给分200.高手请进.谢谢.
- group by substr()的问题
- 在pl/sql里如何才能调大字体,谢谢
- 一个不知道怎样解决的问题,急,在线等待!
- 在存储过程中执行create 命令的问题
- ORACLE中的一个小小的查询问题.哥哥们帮帮忙
- ubuntu 12.04 LTS 64bit 环境下安装Oracle 11g R2 时先决条件检查全部失败~求大神支招
- 配置linux 的oracle data guard 的问题
- insert 数字转换的问题?
贴图中四个是一个job还是多个,如何拼接的,如何调用
执行代码如下:
/**
* 执行存储过程 (无返回值的)
* @param dbname 数据源名字
* @param spname 存储过程名字
* @param params 传入存储过程参数(null为没有传入参数)
* @return 执行影响的行数,-1为失败
*/
@Override
public String Execute(String dbname, String spname, Object[] params) {
int iReturn=-1;
try{
if(null==jdbcTemplate){
log.warn("jdbcTemplate is null");
}
if(null==spname||0==spname.trim().length()){
log.warn("vSpname is null");
return null;
}
if(null!=dbname && dbname.trim().length()>0){
log.info("dsName="+dbname);
this.jdbcTemplate=(JdbcTemplate)AppUtil.getBean(dbname);
}
String strSQL="call "+spname+"(";
if(null!=params && params.length>0){
for(int i=0;i<params.length;i++){
if(0==i)
strSQL=strSQL+"?";
else
strSQL=strSQL+",?";
}
}
strSQL=strSQL+")";
if(null!=params && params.length>0){
log.debug("执行带参数的存储过程:"+dbname+spname+" info:"+Log4jUtil.getInfo(strSQL, params));
iReturn=this.jdbcTemplate.update(strSQL, params);
}else{
log.debug("执行不带参数的存储过程:"+dbname+spname+" info:"+strSQL);
iReturn=this.jdbcTemplate.update(strSQL);
}
log.info("iReturn="+iReturn);
log.info("strSQL="+strSQL);
// log.info("params="+params[0].toString());
}catch(Exception ex){
log.error("",ex);
throw new ApplicationException(ex.getMessage());
}
return ""+iReturn;
}