Galera boa tarde, estou tendo um problema meio sinistro aqui em uma aplicação antiga que trabalha com Java chamando procedures no Oracle.
Bom essa aplicação esta em produção e no servidor de produção esta funcionando corretamente!
Quando executo a última versão de produção conectando com o BD de produção no meu Tomcat Local eu tenho o erro:
Falha no acesso ao BD: org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback; bad SQL grammar [{call msf_cupom.telemarketing_inc(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}]; nested exception is java.sql.SQLException: ORA-06550: linha 1, coluna 17: PLS-00302: component 'MINHA_PROC_INC' must be declared ORA-06550: linha 1, coluna 7: PL/SQL: Statement ignored
O mais sinistro é que todas as PROC não estão mais funcionando, e em produção esta tudo ok!
O Banco de dados é adm por um DataCenter e segundo eles não foi realizada nenhuma alteração de permissão do usuário!
Bom já tentei de tudo, peço ajuda de alguém que já passou por esse problema!
Desde já agradeço a ajuda!
Código de Exemplo de Chamada da Proc
class AndIncProc extends StoredProcedure {
public AndIncProc(DataSource dataSource, String sprocName) {
super(dataSource, sprocName);
declareParameter(new SqlParameter("oco_codigo", Types.INTEGER));
declareParameter(new SqlParameter("tsl_codigo", Types.INTEGER));
declareParameter(new SqlParameter("and_descr", Types.VARCHAR));
declareParameter(new SqlParameter("and_dthandam", Types.TIMESTAMP));
declareParameter(new SqlParameter("usu_codigo", Types.VARCHAR));
declareParameter(new SqlOutParameter("and_codigo", Types.INTEGER));
declareParameter(new SqlOutParameter("msgerro", Types.VARCHAR));
compile();
}
@SuppressWarnings("unchecked")
public Map executeInsert(Andamento andamento) {
String usuario = (String)ActionContext.getContext().getSession().get("usu_codigo");
Map inParameters = new HashMap();
inParameters.put("oco_codigo", andamento.getOco_codigo());
inParameters.put("tsl_codigo", andamento.getTsl_codigo());
inParameters.put("and_descr", andamento.getAnd_descr());
inParameters.put("and_dthandam", andamento.getAnd_dthandam());
inParameters.put("usu_codigo", usuario);
Map out = super.execute(inParameters);
return out;
}
}
public Andamento insert(Andamento andamento) throws Exception {
String owner = (String)ActionContext.getContext().getSession().get("owner");
AndIncProc proc = new AndIncProc(dataSource, owner+".minha_proc_inc");
Map results = proc.executeInsert(andamento);
String erro = (String)results.get("msgerro");
if (!"ok".equals(erro)) {
throw new Exception(erro);
}
andamento.setAnd_codigo((Integer)results.get("and_codigo"));
return andamento;
}