Ir para conteúdo
Fórum Script Brasil

Dr. House

Membros
  • Total de itens

    139
  • Registro em

  • Última visita

Tudo que Dr. House postou

  1. Tente ctrl+shift+F. Mas que eu saiba, n tem queryformatter no pgadmin não você pode identar por aqui oh... http://sqlformat.darold.net/
  2. Oi, bom dia! Meu conselho a você: Eu uso postgresql há uns 4 anos, e te digo, pgAdmin é muito ruim para executar consultas e td mais. Minha sugestão é você usar o dbeaver. Se você usa eclipse, pode instalar o plugin dentro dele mesmo! se não, você pode fazer download ali nesse link que deixei. Com Dbeaver você conecta qualquer jdbc, não apenas o postgresql. Serve para mysql, firebird, sqlserver mongodb e por ai vai. Se você não tiver o driver, ele mesmo faz o download. As consultas já ficam identadas, há sugestoes para completar suas consultas. Muito bom! Eu já uso ele há um ano mais ou menos, e não vi nenhum outro melhor. A unica diferença que você vai encontrar é que o dbeaver conecta um banco por vez. Se seu servidor postgresql tiver mais de um banco, você precisará criar uma conexao para cada banco. o que é logico, você n deve conectar ao servidor inteiro para acessar apenas um banco de dados. Tem varias opçoes de personalização e você pode ver o resultado da consulta em grid ou em plain text. É Massa!!abaixo um print screen de como eu uso o dbeaver. Eu criei uma pasta para cada tipo de banco que eu uso. E uma para cada servidor de banco. você tambem pode usar tipos diferentes de conexao: development, test e production. No devloper no test, o dbeaver deixa você fazer o q você quiser, com autocommit e td mais. No modo production, ele já não habilita automaticamente o autocommit, por exemplo ( mas você pode mudar isso no profile. Nas imagens a baixo você vai ver q no modo production, ele muda as cores pra vermelho, indicando pra mim, visualmente que estou conectado a um banco de produção. Isso me ajuda a ter mais cuidado no momento da manipulação de dados. Outra coisa q se pode observar, é o modo plain text, para exibir o resultado da consulta. Fiz uma propaganda retada!! E de graça! mas realmente foi a melhor opção que encontrei!! Vale a pena você tentar. Se precisar de ajuda, só me falar! ah, é multiplataforma! tem pra win, linux, mac....
  3. ao invéss de postar isso td ai, posta o erro da query. não sei php, mas deve ter um stacktrace ou algo assim não é?? mostra a msg de erro do banco de dados,e a gente vai poder te ajudar
  4. Cara, identa o codigo pra ficar melhor de ler public String novoCpf() throws CpfUsuarioNaoInformadoException { Scanner lerCpf = new Scanner(System.in); System.out.print("cpf:"); return cpf = (lerCpf.nextLine()); } //------------------------------------------------------------------------------------------------ public void fazerLogin() throws SQLException, NomeUsuarioNaoInformadoExecption, CpfUsuarioNaoInformadoException, TelefoneUsuarioNaoInformadoException { StringBuilder sql = new StringBuilder(); sql.append("SELECT codigo, nome, telefone, ddd, email, cpf "); sql.append("FROM socio "); Connection conexao = FabricaDeConexao.conectar(); PreparedStatement comando = conexao.prepareStatement(sql.toString()); ResultSet resultado = comando.executeQuery(); CompararLogin compararUsuarioExistente = new CompararLogin(); AdicionarSocioVisao add = new AdicionarSocioVisao(); String verificaNomeCadastrado = compararUsuarioExistente.getCompararLogin(); String verificaSenhaUsuario = add.novoCpf(); boolean achou = false; while (resultado.next()) { String nome = resultado.getString("nome"); String cpf = resultado.getString("cpf"); int codigo = resultado.getInt("codigo"); if (verificaNomeCadastrado.equals(nome) && verificaSenhaUsuario.equals(cpf)){ System.out.println("Login Efetuado Com Sucesso!!! "); achou = true; System.err.println("SEU CÓDIGO P/ CADASTRO DOS DVD'S É: " + codigo); MenuChamarCadastroDvdEEmprestimo mostrarOpcao = new MenuChamarCadastroDvdEEmprestimo(); mostrarOpcao.escolherOpcaoDvdEmprestimo(); } } if (achou == false) { System.out.println("Usuário não Cadastrado!!!"); TratadorDeIniciarAplicacao voltando = new TratadorDeIniciarAplicacao(); voltando.main(null); } } //------------------------------------------------------------------------------------------- public int contadorDeSolicitacoesEmprestimosPendentes(String cpf) throws SQLException, CpfUsuarioNaoInformadoException{ StringBuilder sql = new StringBuilder(); sql.append("SELECT COUNT(*) "); sql.append("FROM solicitacaoemprestimo "); sql.append("INNER JOIN socio ON (solicitacaoemprestimo.socio_codigo = socio.codigo) "); sql.append("WHERE socio.cpf = ? " ); Connection conexao = FabricaDeConexao.conectar(); PreparedStatement comando = conexao.prepareStatement(sql.toString()); ClubeDoDvdSolicitacaoEmprestimo clube = new ClubeDoDvdSolicitacaoEmprestimo(); Socio so = new Socio(); comando.setString(1, clube.getSocio().getCpf()); ResultSet resultado = comando.executeQuery(); int nCont = 0; while(resultado.next()){ nCont = resultado.getInt("COUNT(*)"); } return nCont; } //--------------------------------------------------------- public void Contar(String passar) throws CpfUsuarioNaoInformadoException, SQLException, NomeUsuarioNaoInformadoExecption, TelefoneUsuarioNaoInformadoException{ AdicionarSocioVisao e = new AdicionarSocioVisao(); ClubeDoDvdSolicitacaoEmprestimo find = new ClubeDoDvdSolicitacaoEmprestimo(); find.setSocio(e); SocioDAO teste = new SocioDAO(); SolicitarEmprestimoDAO dao = new SolicitarEmprestimoDAO(); try { dao.contadorDeSolicitacoesEmprestimosPendentes(find); System.out.println(dao.contadorDeSolicitacoesEmprestimosPendentes(find)); } catch (SQLException ex) { // TODO Auto-generated catch block ex.printStackTrace(); } } //--------------------------------------------------------------------------------------------- dicas: 1- evite usar artigos no nome das classes ou dos metodos, tipo contadorDeSolicitacoesEmprestimosPendentes - Tire o DE n tem necessidade. 2- um dos seus metodos tem um boolean achou. Voce ta testando ele assim: if (achou ==true){ //faz alguma coisa } if (achou == false){ //faz outra coisa } tem um jeito mais simples de testar booleano if (achou) { //se verdadeiro //faz alguma coisa } if (!achou){ // se falso //faz outra coisa }
  5. é uma tabela de log? os registros estao duplicados? qual o conteudo da tablea?
  6. cara, aqui onde eu trabalho temos um sistema assim. Porem, cada cliente tem um banco de dados separado. Se você criar um unico banco para varios clientes, você vai ter serios problemas com processamentos e desempenho. Crie um banco para cada, e defina o banco a ser acessado no inicio da sessao do operador, ou do usuario. Se você ainda assim não quiser fazer isso, o unico jeito q eu vejo, é em cada tabela ter um campo que relacionado ao cadastro da empresa, com o id da empresa, e assim você vai identificar cada registro, mas ai você vai ter q fazer isso em toooodas as tabelas. O postgres possui muitas facilidades, crie um para cada, e gerencie apartir da sessao do usuario. vai ficar show! boa sorte ae
  7. para restaurar o dumpall: psql -U postgres -h ipdoservidornovo < dump.sql
  8. com o psql do servidor mais recente, faz um pg_dumpAll do servidor, e depois restaura com psql. pg_dumpall -v -U postgres > /home/vinny/bkp.Postgres/pgdump/dump.sql pg_dumpall -h ipdohost -v -U postgres > c:\pgdump\dump.sql (Só uma curiosidade... Mas porque vai tirar do linux pro windows mesmo?)
  9. Dr. House

    Duvida Conceitual

    Olá a todos, Eu tenho aqui uma classe que processa retornos de banco. Essa classe lê o arquivo de retorno, renomeia, identifica os registros do arquivo, dispara processos dentro do sistema, como baixa de pagamentos, ou cancelamento de pagamentos. Esta classe é customizada, e esta nomeada como ProcessaBaixaFactory.java. Mas acredito que ela não é uma factory de fato. Mas não se como renomear esta classe, se ela é um service, ou um helper ... alguém me tira essa duvida?
  10. olá pessoal, eu to aqui estudano o hibernate, e fiquei numa duvida. eu criei um relacionamento entre as classes Pais e UF. UF tem Pais. tranquilo, funcionou massa, mas a fk ficou c um nome muito doido, um hash parece. bom eu fiz da seguinte forma: @NotNull @ManyToOne @ForeignKey(name="fk_Uf_Pais") private Pais pais; porem, @ForeignKey vem com um aviso de deprecated. Funciona, mas ta com o aviso. Sendo assim: qual a maneira correta de fazer?
  11. Dr. House

    javascript

    Bom dia jovem. Sua pergunta esta no forum errado. Este forum é sobre Java e não javaScript. Algum moderador, deve mover pro lugar certo.
  12. seria legal usar o format de codigo aqui, fica mais faicl de ler... SELECT DISTINCT on (q.agent) rm.nome as Agent, (Select count(event) from queue_log where (event LIKE '%ABANDON%') AND CASE WHEN ${prmIntervalo} = '4' THEN time::date between to_date(${prmDataInicial},'YYYY-mm-dd') and to_date(${prmDataFinal},'YYYY-mm-dd') WHEN ${prmIntervalo} = '1' THEN time::date = CURRENT_DATE - 1 WHEN ${prmIntervalo} = '2' THEN time::date = CURRENT_DATE - 7 WHEN ${prmIntervalo} = '3' THEN time::date = CURRENT_DATE - 30 END AND queuename = q.queuename) as perdida, (Select count(event) from queue_log where (event LIKE '%COMPLETE%') AND CASE WHEN ${prmIntervalo} = '4' THEN time::date between to_date(${prmDataInicial},'YYYY-mm-dd') and to_date(${prmDataFinal},'YYYY-mm-dd') WHEN ${prmIntervalo} = '1' THEN time::date = CURRENT_DATE - 1 WHEN ${prmIntervalo} = '2' THEN time::date = CURRENT_DATE - 7 WHEN ${prmIntervalo} = '3' THEN time::date = CURRENT_DATE - 30 END AND agent = q.agent) as Atendida, (Select count(event) from queue_log where event = 'TRANSFER' AND CASE WHEN ${prmIntervalo} = '4' THEN time::date between to_date(${prmDataInicial},'YYYY-mm-dd') and to_date(${prmDataFinal},'YYYY-mm-dd') WHEN ${prmIntervalo} = '1' THEN time::date = CURRENT_DATE - 1 WHEN ${prmIntervalo} = '2' THEN time::date = CURRENT_DATE - 7 WHEN ${prmIntervalo} = '3' THEN time::date = CURRENT_DATE - 30 END AND agent = q.agent) as Transferida ,q.queuename as queuename FROM queue_log q INNER JOIN f_ramal_virtual rm ON rm.ramal_virtual = q.agent WHERE q.event != 'RINGNOANSWER' AND CASE WHEN NULLIF(${prmNomeFila},NULL) is NOT NULL THEN (q.queuename = ${prmNomeFila}) END AND CASE WHEN ${prmIntervalo} = '4' THEN time::date between to_date(${prmDataInicial},'YYYY-mm-dd') and to_date(${prmDataFinal},'YYYY-mm-dd') WHEN ${prmIntervalo} = '1' THEN time::date = CURRENT_DATE - 1 WHEN ${prmIntervalo} = '2' THEN time::date = CURRENT_DATE - 7 WHEN ${prmIntervalo} = '3' THEN time::date = CURRENT_DATE - 30 END
  13. where extract(month from data) = X and extract(year from data) = xxxx
  14. Dr. House

    erro criacao de fk

    lt_deb int8 reference fcontab.cadcta (pc_apel) se it_deb faz referencia a pc_apel, e pc_apel não contem valores unicos, não vai dar certo. a constraint não sera criada, repare se não aparece uma msg de invalid Foreingkey...
  15. Dr. House

    erro criacao de fk

    pc_apel tem valores 0, você mesmo disse, e n vai ter como você criar chave unica ou FK se mais de um registro nessa coluna tem o mesmo valor.
  16. não tinha percebido. mas não deu muita diferença não...
  17. levenshtein retorna um int com um score, qt menor o score, menor o erro. Se eu eu passo a seguinte consulta: select coalesce(nrs.id,0) as id, nrs.nome, upper(nrs.codigo||nrs.nome) as nomeNatRecSiga, levenshtein(upper(nrs.codigo||nrs.nome), upper('1721333100PSF - Programa de Saúde da Família')) as ctrl from naturezareceitasiga nrs order by levenshtein(upper(nome), upper('1721333100PSF - Programa de Saúde da Família')) o menor score foi 28: 11212099OUTRAS TAXAS DE SAÚDE SUPLEMENTAR 28 qd deveria ter retornado o valor a baixo, e com um score menor 17213331PSF - PROGRAMA DE SAÚDE DA FAMÍLIA
  18. Bom dia, tenho a seguinte situação: tabela a id,codigo,nome tabela b id,codigo,nome preciso consultar na tabela B, no campo nome, o que for mais parecido com o nome da tabela A e trazer o id da tabela B para gerar um insert numa tabela equivalenciaAB eu usei o seginte comando mas não ta me retornando de maneira eficiente: select id, levenshtein (upper(b.nome), upper('nome que vem da tabela A passado por parametro em java')) as ctrl from tabela b order by levenshtein (upper(b.nome), upper('nome que vem da tabela A passado por parametro em java')) limit 1 mas a taxa de acerto, esta muito pequena, uns 5%... alguém tem alguma outra ideia?
  19. select codigo, empresa, email, codigo as codigo2 from tabela group by 1,2,4 order by 1,2,4 Acho q é isso.
  20. Se os anos que você quer que venham zero, estiverem vindo nulos, você pode usar coalesce para que quando for nulo, traga algo que você queria, por exemplo: Select coalesce(ano,'00') from tabela No caso acima, caso o campo ano seja nulo, ele colocará '00'. não sei se serve no seu caso.
  21. em tese é isso ai: SELECT nome, END, dtnasc, tel, email from mmed.multimed.pacientes agora, a exportacao para csv ou excel, não sei se o pgadmin faz, eu utilizo dbeaver, e ele faz tranquilo. botao direito exportar...
  22. se existirem outras tabelas ligadas a tabela chamada, com FK's on delete cascade, vai levar uma vida mesmo....
×
×
  • Criar Novo...