Executa procedure sqlserver

4 respostas
snowblacksoul

Fala galera blz, estou com um problema ao executar uma procedure alguém poderia me ajudar!!!?

String BancoName    = "TERADATA_"+dt_mes_ftra+"";
    String TableName    = "PQ_CTD_"+dt_data+"";
    String PathFileName = "D:/Publico/201107/PARQUE_CONTRATADO_"+dt_data+".TXT";
    
    try{
           
           //Executa Procedure
            CallableStatement cs =  con.prepareCall("{call ps_Import_PQ_PLN(?),(?),(?)}");
            
            cs.setString(1, "BancoName");
            cs.setString(2, "TableName");
            cs.setString(3, "PathFileName");
            cs.execute();
está dando o seguinte erro!!!
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near ')'.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:322)
	at Upload.telefonica.com.br.UploadPqCtd.<init>(UploadPqCtd.java:285)
	at planomlocal.PlanoMLocal.main(PlanoMLocal.java:68)

4 Respostas

davidbuzatto

Não seria:

call ps_Import_PQ_PLN(?, ?, ?)

???

[]'s

E

O jeito que o David passou é o correto

prepareStatement("{call sp_atualiza_fonte_pagadora(?,?,?,?,?,?,?,?,?,?)}");

Uma dica que eu sempre vi, e utulizei em um projeto que eu desenvolvi foi de usar o driver jtds ao invés do driver da microsoft, dizem que ele é melhor

http://jtds.sourceforge.net/

fica ai a dica,

abs,

Evandro

snowblacksoul

Valeu Evandro_contato e davidbuzatto

vou seguir as dicas,já estou executando e parece que está dando certo…
abraços a todos.!!

brigadão fica na paz.

snowblacksoul

Pessoal segui conforme vc´s falaram porém esta dando erro!
só que se eu executar na mão a procedure roda normalmente o que pode estar dando errado!?

vou colocar o codigo com as mudanças abaixo e o erro!
String BancoName    = "TERADATA_"+dt_mes_ftra+"";
    String TableName    = "PQ_CTD_"+dt_data+"";
    String PathFileName = "D:/Publico/201107/PARQUE_CONTRATADO_"+dt_data+".TXT";
    
    try{
          
           //Executa Procedure
           //JtdsCallableStatement
           
           //JtdsCallableStatement cs = (JtdsCallableStatement) con.prepareCall("{call ps_Import_PQ_PLN(?,?,?)}");
            CallableStatement cs =  con.prepareCall("{call ps_Import_PQ_PLN(?,?,?)}");
            //call ps_Import_PQ_PLN (?,?,?)
            cs.setString(1, BancoName);
            cs.setString(2, TableName);
            cs.setString(3, PathFileName);
            cs.execute();

java.sql.SQLException: Bulk load data conversion error (overflow) for row 2, column 2 (SISTEMA).
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:633)
at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:478)
at Upload.telefonica.com.br.UploadPqCtd.<init>(UploadPqCtd.java:290)
at planomlocal.PlanoMLocal.main(PlanoMLocal.java:68)

Criado 1 de novembro de 2011
Ultima resposta 1 de nov. de 2011
Respostas 4
Participantes 3