Sql [resolvido]

24 respostas
ricardocomp

Olá pessoal,
eu estou com uma dúvida aqui que não estou conseguindo resolver será que alguém poderia me dar uma ajuda?
Toda hora que eu vou tentar salvar os meus dados no banco de dados eu encontro a seguinte Exceção

Exception :: SQLException
org.postgresql.util.PSQLException: Nenhum valor especificado para parâmetro 774.
        at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:146)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:183)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:470)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:369)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:315)
        at DBConnection.saveIntoDB(DBConnection.java:87)
        at ServletResults.doPost(ServletResults.java:90)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

Alguém sabe me dizer o que está acontecendo? Será que alguém pdoeria me dar uma ajuda?

[]'s.

24 Respostas

ricardocomp

Olá pessoal agora apareceu o seguinte erro

org.postgresql.util.PSQLException: ERRO: INSERT tem mais expressões do que colunas alvo
Exception :: SQLException
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:470)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:369)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:315)
        at DBConnection.saveIntoDB(DBConnection.java:87)
        at TestDBConnection.main(TestDBConnection.java:28)
CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)

Será que alguém pode me dar uma ajuda?

[]'s.

E
org.postgresql.util.PSQLException: Nenhum valor especificado para parâmetro 774.  
...
        at DBConnection.saveIntoDB(DBConnection.java:87) ->  uma olhadinha aqui, deve ser seu fonte
        at ServletResults.doPost(ServletResults.java:90)   ->  uma olhadinha aqui, deve ser seu fonte

Parâmetro 774? Seu comando SQL tem 774 parâmetros?

E
org.postgresql.util.PSQLException: ERRO: INSERT tem mais expressões do que colunas alvo
B

Voce pode postar o código para ajudar a visualizar? E também mostrar as colunas da tabela?

ricardocomp

Olá entanglement,
tenho sim é uma tabelona =D.
Com 774 métricas.
entanglement Será q tem como vc me dar uma ajuda?

[]'s.

ricardocomp

Eu estou fazendo o seguinte teste Binnho

public class TestDBConnection {

    public static void main(String[] args) {

        try {
            DBConnection dbconn = new DBConnection();
            ArrayList<String> list = new ArrayList<String>();
            File file = new File("teste.txt");
            FileReader reader = new FileReader(file);
            BufferedReader bfr = new BufferedReader(reader);
            while (bfr.readLine() != null) {
                list.add(bfr.readLine());
            }
            list.remove(list.size()-1);
            dbconn.saveIntoDB("projeto", "ricardo", "USP", "2003-12-31", "143.107.231.67", list);
            bfr.close();
            
        }
        catch (IOException ex) {
            ex.printStackTrace();
        }

    }
}
ricardocomp

“VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)”);

ricardocomp

Na realidade entanglement eu tenho 778 parametros. :smiley: .

B

Você já debugou o programa e viu se todos os parametros estão sendo preenchidos corretamentes com essa list? Verifique se não estão sendo passados dados a mais ou a menos, uma vez que seu banco aparenta não aceitar null values.

ricardocomp

entanglement as linhas q vc me falou são essas

at DBConnection.saveIntoDB(DBConnection.java:87)  ---> ps.executeUpdate();
at ServletResults.doPost(ServletResults.java:90) --->
DBConnection savDB = new DBConnection();
            savDB.saveIntoDB(request.getParameter("projectName"), request.getParameter("assessorName"), request.getParameter("organizationName"), formatLong.format(now), request.getRemoteAddr(), OMMassessmentValue);

Será que tem como vc ou alguém me dar uma ajuda?

[]'s.

ricardocomp

Olá Binnho,
vou dar mais uma olhada aqui,
já fiz isso antes mas até agora não consegui descobrir aonde está o erro :frowning:

[]'s.

B

Bom algo nada a ver com o seu problema, é mais uma dica só!!
Ao invés de fazer um Select * e percorrer tudo para pegar o ultimo id, tenta fazer algo semelhante a: “Select max id from table”.

B

Como voce tem 6 parametros fora a lista, verifica se a lista contém exatos 772 parametros, assim dará os 778 parametros que a tabela contém.

ricardocomp

Olá Binnho,
olha só o que eu fiz só para desengargo de consciencia:

list.size() = 778


Exception :: SQLException
org.postgresql.util.PSQLException: O índice da coluna está fora do intervalo: 779, número de colunas: 778.
        at org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:52)
        at org.postgresql.core.v3.SimpleParameterList.setLiteralParameter(SimpleParameterList.java:113)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.bindLiteral(AbstractJdbc2Statement.java:2122)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.setInt(AbstractJdbc2Statement.java:1165)
        at DBConnection.saveIntoDB(DBConnection.java:84)
        at TestDBConnection.main(TestDBConnection.java:26)
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
ricardocomp

Binnho eu fiz o q vc me falou e olha só o q apareceu

list.size() = 772
Exception :: SQLException
org.postgresql.util.PSQLException: ERRO: INSERT tem mais expressões do que colunas alvo
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:470)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:369)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:315)
        at DBConnection.saveIntoDB(DBConnection.java:87)
        at TestDBConnection.main(TestDBConnection.java:26)
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

[]'s.

B

Aí está o problema, vc tem um list com 778 parametros, e mais 6 parametros fora da list, o que dá uma soma de 804 para uma tabela de 778 parametros. Estou entendendo correto?

ricardocomp

Olá Binnho é isso msm :smiley:

ricardocomp

Binnho acrescentei mais 6 parametros

?, ?, ?, ?, ?, ?

e msm assim ñ está funcionando Binnho,
será q tem como vc ou alguém me dar uma ajuda?

[]'s.

adriano_si

ricardocomp:
Binnho acrescentei mais 6 parametros

?, ?, ?, ?, ?, ?

e msm assim ñ está funcionando Binnho,
será q tem como vc ou alguém me dar uma ajuda?

[]'s.

Cara… o erro tá claro… não tem mais muito o que fazer por ti… tens parametros a mais do que a lista está esperando ou a menos…

faz um Debug no código e verifica onde pode estar o erro… Os teus printStackTrace estão bem claros sobre os erros…

B

Não adianta tu inserir mais parametros no seu Insert se a sua tabela não aceitar. Pela mensagem de erro, voce está tentando passar mais parametros do que a tabela aceita, verifica a compatibilidade de parametros do insert com a tabela.

ricardocomp

Olá pessoal diminui o úmero de parametros
e agora não está aparecendo nenhuma msg de erro
mas tb ñ tá salvando no banco :frowning:
Será que alguém pode me dar uma ajuda?

[]'s.

ricardocomp

Olá pessoal os parametros corretos são 773 + 6 (extra) = 779
essa foi a única informação útil que eu consegui com o pessoal que montou o banco. :frowning: .

Já alterei no código aqui, mas não estou conseguindo salvar
nada no banco através do meu teste.
Será que alguém pode me dar uma ajuda?

[]'s.

ricardocomp

Consegui pessoal deu certo aqui muito obrigado pela ajuda de todos.

Um Forte Abraço à todos e Fiquem com Deus. :smiley: .

adriano_si

Poutz… e aí o que era ??? Não vai compartilhar conosco ???

Criado 9 de novembro de 2010
Ultima resposta 9 de nov. de 2010
Respostas 24
Participantes 4