Ir para conteúdo
Fórum Script Brasil

paô

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre paô

paô's Achievements

0

Reputação

  1. Criei uma FUNCTION no Postgre 9.3 para rodar 5 insert´s simultaneos onde cada insert corresponde a uma tabela diferente (generalização e especialização) quando eu executo a function no Execute Query do pgAdmin III retorna um campo (tipo select) | |fisica_insert | |_|void | |1| | Quando eu chamo essa function pelo Netbeans 8.0 retorna uma Exception: ERRO SQL: Um resultado foi retornado quando nenhum era esperado. Mas todos os dados são inseridos corretamente. A dúvida é: Como tratar essa Exception? FUNCTION: CREATE OR REPLACE FUNCTION fisica_insert(nome varchar, vcpf varchar, vrg varchar, data_nascimento date, estado_civil varchar, nacionalidade varchar, tratamento varchar, profissao varchar, logradouro varchar, numero varchar, bairro varchar, complemento varchar, cep varchar, cidade varchar, uf varchar, tel_1 varchar, ramal_1 varchar, tel_2 varchar, ramal_2 varchar, tel_3 varchar, tel_4 varchar, ramal_4 varchar, email varchar, paginaweb varchar) RETURNS VOID AS $$ DECLARE BEGIN INSERT INTO pessoa(nome) VALUES (nome); INSERT INTO fisica(cpf, rg, pessoa_idPessoa, data_nascimento, estado_civil, nacionalidade) VALUES (vcpf, vrg, (select max(idpessoa)from pessoa), data_nascimento, estado_civil, nacionalidade); INSERT INTO cliente(pessoa_idPessoa, fisica_rg, fisica_cpf, tratamento, profissao) VALUES ((select max(idpessoa)from pessoa), (select rg from fisica where pessoa_idPessoa=(select max(idpessoa)from pessoa)), (select cpf from fisica where pessoa_idPessoa=(select max(idpessoa)from pessoa)), tratamento, profissao); INSERT INTO endereco(pessoa_idPessoa, logradouro, numero, bairro, complemento, cep, cidade, uf) VALUES ((select max(idpessoa)from pessoa), logradouro, numero, bairro, complemento, cep, cidade, uf); INSERT INTO contato(pessoa_idPessoa, tel_1, ramal_1, tel_2, ramal_2, tel_3, tel_4, ramal_4, email, paginaWeb) VALUES ((select max(idpessoa)from pessoa), tel_1, ramal_1, tel_2, ramal_2, tel_3, tel_4, ramal_4, email, paginaWeb); END; $$ LANGUAGE plpgsql Chamando a function: SELECT fisica_insert('FISICA INSERT', '22222222222', '22222222-2', '22-02-2002', 'SOLTEIRO', 'BRASILEIRO', 'SR.', 'TESTER', 'RUA TESTE FUNCTION', '222', 'BAIRRO TESTE', 'APTO. 22', '22222-222', 'TESTE CIDADE', 'TS', '1192222-2222', 'VIVO', '1193333-3333', 'CLARO', '112222-2222', '113333-3333', '33', 'TESTE@FUNCTION.COM.BR', 'WWW.TESTEFUNCTION.COM.BR'); Código JAVA: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { final String url = "jdbc:postgresql://localhost:5432/nome_do_banco"; final String user = "usuário"; final String senha = "senha"; String tratamento = null; if(jRadioButton_Sr.isSelected()){ tratamento = jRadioButton_Sr.getText(); }else if(jRadioButton_Sra.isSelected()){ tratamento = jRadioButton_Sra.getText(); }else if(jRadioButton_Dr.isSelected()){ tratamento = jRadioButton_Dr.getText(); }else if(jRadioButton_Dra.isSelected()){ tratamento = jRadioButton_Dra.getText(); } try{ Connection conexao = DriverManager.getConnection(url, user, senha); PreparedStatement cliente = conexao.prepareStatement("SELECT fisica_insert(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); cliente.setString(1, jTextField_Nome.getText()); cliente.setString(2, jTextField_CPF.getText()); cliente.setString(3, jTextField_RG.getText()); cliente.setDate(4, Date.valueOf(jTextField_Nascimento.getText())); cliente.setString(5, jTextField_EstadoCivil.getText()); cliente.setString(6, jTextField_Nacionalidade.getText()); cliente.setString(7, (String)tratamento); cliente.setString(8, jTextField_Profissao.getText()); cliente.setString(9, jTextField_Logradouro.getText()); cliente.setString(10, jTextField_Numero.getText()); cliente.setString(11, jTextField_Bairro.getText()); cliente.setString(12, jTextField_Complemento.getText()); cliente.setString(13, jTextField_CEP.getText()); cliente.setString(14, jTextField_Cidade.getText()); cliente.setString(15, (String)jComboBox_Estado.getSelectedItem()); cliente.setString(16, jTextField_Tel1.getText()); cliente.setString(17, (String)jComboBox_Tel1.getSelectedItem()); cliente.setString(18, jTextField_Tel2.getText()); cliente.setString(19, (String)jComboBox_Tel2.getSelectedItem()); cliente.setString(20, jTextField_Tel3.getText()); cliente.setString(21, jTextField_Tel4.getText()); cliente.setString(22, jTextField_Ramal4.getText()); cliente.setString(23, jTextField_Email.getText()); cliente.setString(24, jTextField_PaginaWeb.getText()); int result = cliente.executeUpdate(); JOptionPane.showMessageDialog(null, "Cadastro Efetuado! "+ result +" linhas afetadas"); }catch(SQLException e){ JOptionPane.showMessageDialog(null, "ERRO SQL: " + e.getMessage()); e.printStackTrace(); } } Se alguém puder ajudar eu agradeço.
×
×
  • Criar Novo...