诡异的数据库存储过程调用问题 求大神指点

sl514 2013-11-13 04:44:41
我们现在用的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端也可以调用成功
...全文
135 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sl514 2013-11-14
  • 打赏
  • 举报
回复
引用 1 楼 jdsnhan 的回复:
再多给点信息。 贴图中四个是一个job还是多个,如何拼接的,如何调用
是四个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;
}
jdsnhan 2013-11-14
  • 打赏
  • 举报
回复
再多给点信息。 贴图中四个是一个job还是多个,如何拼接的,如何调用

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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