Olá pessoal, to tendo problemas para executar uma Stored Procedure e já estou fikando maluko… Por favor me ajudem… Naum sei pq esta dando este erro (ORA-01006: bind variable does not exist) … Assumo que não sou muito experinete em java e o problema pode ser bem simples de resolver, mas eu naum sei… peço desculpas pelo incomodo… por favor me ajudem … :roll:
/*---Inicio - Executar SPR ---------------------------------------------*/
try {
String strSTMT = "begin PG_SiafemNet_EJB.PR_incluir_ne_inicial(:1,:2,:3,:4,:5,:6,:8,:9," +
":10,:11,:12,:13,:14,:15,:16,:17,:18,:19,"+
":20,:21,:22,:23,:24,:25,:26,:27,:28,:29,"+
":30,:31,:32,:33,:34,:35,:36,:37,:38,:39,"+
":40,:41,:42,:43,:44,:45,:46,:47,:48,:49,"+
":50,:51,:52,:53,:54); end;";
OracleCallableStatement cstmt = (OracleCallableStatement) conn.prepareCall(strSTMT);
System.out.println("vai setar!");
cstmt.setString(1,"09out06");
cstmt.setString(2,"200102");//"v_unidage_gestora"
cstmt.setString(3,"00001");//"v_gestao"
cstmt.setString(4,"61695227000193");//"v_cgc_credor"
cstmt.setString(5,null);//"v_gestao_credor"
cstmt.setString(6,"400091");//"v_evento"
cstmt.setString(7,"200102");//"v_ptres"
cstmt.setString(8,null);//"v_uo"
cstmt.setString(9,null);//"v_pt"
cstmt.setString(10,"001001001");//"v_fonte"
cstmt.setString(11,"33905011");//"v_natureza_despesa"
cstmt.setString(12,"200010");//"v_ugo"
cstmt.setString(13,"0100");//"v_cod_municipio"
cstmt.setString(14,null);//"v_acordo"
cstmt.setString(15,"1");//"v_cod_modalidade"
cstmt.setString(16,"6");//"v_tipo_licitacao"
cstmt.setString(17,"xxx");//"v_ref_legal"
cstmt.setString(18,"1");//"v_origem_material"
cstmt.setString(19,"VD0123/06 6");//"v_processo"
cstmt.setString(20,"300");//"v_valor"
cstmt.setString(21,"xxx");//"v_local_entrega"
cstmt.setString(22,"30OUT2006");//"v_data_entrega"
cstmt.setString(23,"9");//"v_tipo_empenho"
cstmt.setString(24,null);//"v_ident_obra"
cstmt.setString(25,"2006NE01689");//"v_numero_ne"
cstmt.setString(26,"M");//"v_tipo_geracao" // Sempre "M"
// cstmt.setDate(27, new java.sql.Date(System.currentTimeMillis()) );//"v_data_processamento"
cstmt.setString(27,"10");//"v_mes01"
cstmt.setString(28,null);//
cstmt.setString(29,null);//
cstmt.setString(30,null);//
cstmt.setString(31,null);//
cstmt.setString(32,null);//
cstmt.setString(33,null);//
cstmt.setString(34,null);//
cstmt.setString(35,null);//
cstmt.setString(36,null);//
cstmt.setString(37,null);//
cstmt.setString(38,null);//
cstmt.setString(39,null); //"v_mes13"
cstmt.setString(40,"300");//"v_valor01"
cstmt.setString(41,null);
cstmt.setString(42,null);
cstmt.setString(43,null);
cstmt.setString(44,null);
cstmt.setString(45,null);
cstmt.setString(46,null);
cstmt.setString(47,null);
cstmt.setString(48,null);
cstmt.setString(49,null);
cstmt.setString(50,null);
cstmt.setString(51,null);
cstmt.setString(52,null);//"v_valor13"
System.out.println("fim setar ins!");
cstmt.registerOutParameter (53, OracleTypes.NUMBER);
cstmt.registerOutParameter (54, java.sql.Types.VARCHAR);
cstmt.execute ();
strSPMsgErro = ((OracleCallableStatement)cstmt).getString (54);
System.out.println("strSPMsgErro:"+strSPMsgErro);
}catch(Exception e){
e.printStackTrace();
System.out.println("Exception");
//oVo.setOutErro("Erro ao executar Stored Procedure:" + strSprNome );
//oVo.setOutStatus(-900);
}
/*---Fim - Executar SPR ------------------------------------------------*/
:arrow:
erro:
java.sql.SQLException: ORA-01006: bind variable does not exist
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2152)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2035)
Exception
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2876)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:609)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:685)
at com.attachmate.model.bo.TesteBD7.main(TesteBD7.java:144)
Documentação da StrdProcedure:
PROCEDURE PR_incluir_ne_inicial( v_data_emissao IN VARCHAR2,
v_unidage_gestora IN VARCHAR2,
v_gestao IN VARCHAR2,
v_cgc_credor IN VARCHAR2,
v_gestao_credor IN VARCHAR2,
v_evento IN VARCHAR2,
v_ptres IN VARCHAR2,
v_uo IN VARCHAR2,
v_pt IN VARCHAR2,
v_fonte IN VARCHAR2,
v_natureza_despesa IN VARCHAR2,
v_ugo IN VARCHAR2,
v_cod_municipio IN VARCHAR2,
v_acordo IN VARCHAR2,
v_cod_modalidade IN VARCHAR2,
v_tipo_licitacao IN VARCHAR2,
v_ref_legal IN VARCHAR2,
v_origem_material IN VARCHAR2,
v_processo IN VARCHAR2,
v_valor IN VARCHAR2,
v_local_entrega IN VARCHAR2,
v_data_entrega IN VARCHAR2,
v_tipo_empenho IN VARCHAR2,
v_ident_obra IN VARCHAR2,
v_numero_ne IN VARCHAR2,
v_tipo_geracao IN VARCHAR2,
v_mes01 IN VARCHAR2,
v_mes02 IN VARCHAR2,
v_mes03 IN VARCHAR2,
v_mes04 IN VARCHAR2,
v_mes05 IN VARCHAR2,
v_mes06 IN VARCHAR2,
v_mes07 IN VARCHAR2,
v_mes08 IN VARCHAR2,
v_mes09 IN VARCHAR2,
v_mes10 IN VARCHAR2,
v_mes11 IN VARCHAR2,
v_mes12 IN VARCHAR2,
v_valor01 IN VARCHAR2,
v_valor02 IN VARCHAR2,
v_valor03 IN VARCHAR2,
v_valor04 IN VARCHAR2,
v_valor05 IN VARCHAR2,
v_valor06 IN VARCHAR2,
v_valor07 IN VARCHAR2,
v_valor08 IN VARCHAR2,
v_valor09 IN VARCHAR2,
v_valor10 IN VARCHAR2,
v_valor11 IN VARCHAR2,
v_valor12 IN VARCHAR2,
v_id OUT NUMBER,
v_ds_msg_erro OUT VARCHAR2);