
douglascso
Membros-
Total de itens
32 -
Registro em
-
Última visita
Tudo que douglascso postou
-
O seu backup pode ser apenas de dados, apenas o schemas ou os dois. Se for apenas de dados, você dever ter as tabelas e colunas criadas, para conseguir restaurar os dados. Se for schemas, ele vai criar as tabelas somente. Se for os dois, ele vai criar a tabela automaticamente e restaurar os dados. Tente mudar o 'Format' para vê se consegue restaurar. Se não conseguir, você pode me enviar o backup para douglascsoliveira@hotmail.com
-
Boa tarde. A forma mais simples é instalar o pgadmin, conectar no servidor, criar o banco e restaura-lo.
-
DATA DE CRIACAO /ALTERACAO DA ESTRURA DA TABELA
pergunta respondeu ao softmaxi de douglascso em PostgreSQL
Boa noite. Olhe o log na pasta pg_log. Douglas Carlos -
Erro em script Inno para instalação do postgres 9.6
pergunta respondeu ao alexmzr de douglascso em PostgreSQL
O instalador deve estar tentando instalar uma versão do vc++, e gera esse erro, a instalação atual do vc++ pode estar ruim, tenta instalar a versão do vc++ por linha de comando ou manual antes da instalação do postgres. Verifica o log do usuário também. -
Erro em script Inno para instalação do postgres 9.6
pergunta respondeu ao alexmzr de douglascso em PostgreSQL
Boa noite, a distribuição deve ter algum requisito, e esse deve estar satisfeito antes da instalação. Tente também outra distribuição dos Postgres para Windows. -
Bom dia, poderia mandar um resultado do select? Eu trato as datas dessa forma: SELECT extract(day from data) || '/' || extract(month from data) || '/' || extract(year from data) AS data from tabela; Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_
-
Bom dia, use esses dois comandos SELECT dtin, 'OK' AS status FROM tab_base INNER JOIN tab_consulta ON tab_base.gtin = tab_consulta.cod_barra WHERE tab_base.cod_entr = tab_consulta.cod_entr and tab_base.aliq_entr = tab_consulta.aliq_entr and tab_base.cod_saida = tab_consulta.cod_saida; SELECT dtin, 'INVALIDO' AS status FROM tab_base INNER JOIN tab_consulta ON tab_base.gtin = tab_consulta.cod_barra WHERE tab_base.cod_entr != tab_consulta.cod_entr OR tab_base.aliq_entr != tab_consulta.aliq_entr OR tab_base.cod_saida != tab_consulta.cod_saida; Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_
-
Boa tarde, muito interessante a sua pergunta, o horário que a pessoa bateu as marcações de ponto chama-se folha de ponto e nela não se calcula a soma dos horários trabalhados, apenas exibi os ponto batidos, e essa marcação não poderia ser alterada. Um relatório de conferencia de horas trabalhadas pode-se adicionar, remover ou alterar as marcações para refletir o tempo trabalhado. No caso 1 eu iria lançar o horário que a pessoa esqueceu de bater o ponto para poder fazer a conta corretamente, pois não é possível o sistema calcular a segunda jornada de trabalho. Mas para isso o funcionário teria que comunicar o fato para que as providencias fossem tomadas. Segue um exemplo de consulta: SELECT (coalesce(b.hora, '00:00:00')::INTERVAL - coalesce(a.hora, '00:00:00')::INTERVAL) + ((coalesce(d.hora, '00:00:00')::INTERVAL - coalesce(c.hora, '00:00:00')::INTERVAL) * 1) AS horas_trabalhadas FROM (select row_number() OVER () as id, matricula, extract(hour from datadia) || ':' || extract(minutes from datadia) || ':' || extract(seconds from datadia) AS hora from pontos where matricula = 1313 and datadia between '2019-03-08 00:00:01' and '2019-03-08 23:59:59' order by datadia) a full outer join (select row_number() OVER () as id, matricula, extract(hour from datadia) || ':' || extract(minutes from datadia) || ':' || extract(seconds from datadia) AS hora from pontos where matricula = 1313 and datadia between '2019-03-08 00:00:01' and '2019-03-08 23:59:59' order by datadia) b ON b.matricula = a.matricula and b.id = 2 full outer join (select row_number() OVER () as id, matricula, extract(hour from datadia) || ':' || extract(minutes from datadia) || ':' || extract(seconds from datadia) AS hora from pontos where matricula = 1313 and datadia between '2019-03-08 00:00:01' and '2019-03-08 23:59:59' order by datadia) c ON c.matricula = a.matricula and c.id = 3 full outer join (select row_number() OVER () as id, matricula, extract(hour from datadia) || ':' || extract(minutes from datadia) || ':' || extract(seconds from datadia) AS hora from pontos where matricula = 1313 and datadia between '2019-03-08 00:00:01' and '2019-03-08 23:59:59' order by datadia) d ON d.matricula = a.matricula and d.id = 4 limit 1; Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_
-
Bom dia, acredito que sim, o que você quer se chama Foreign data wrappers. Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_
-
Bom dia, Essa coluna já existe? Talvez a ordem de criação está incorreta. Se existe, ela está com letras minúsculas? O usuário tem permissão para acessar?
-
Boa tarde, isso acontece com um banco recém criado? ou com um que já tem algum tempo de uso? de qualquer forma você pode fazer uma manutenção no banco. Execute o VACUUM com todas as opções. Reindex com o banco. Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_
-
postgres Execuar Consulta Automáticamente
pergunta respondeu ao galvao_em de douglascso em PostgreSQL
Boa noite, use o pgAgent, não conheço uma forma nativa de fazer. https://www.pgadmin.org/docs/pgadmin4/dev/pgagent.html Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_ -
Boa noite, você também pode usar o pgAgent, não conheço uma forma nativa de fazer. https://www.pgadmin.org/docs/pgadmin4/dev/pgagent.html Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_
-
Bom dia, pelo que conheço, uma transação deve ser iniciada por alguém. Crie um programa que faça esse job ou um script e agende um horário para ele executar. No Windows eu uso o gerenciador de tarefas para executar um script em CMD de backup diariamente. Qual o sistema operacional e versão e qual a versão do seu banco de dados para criar um script para você? Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_
-
Validar código de barras / EAN de produtos
pergunta respondeu ao Rodrigo A. M. de douglascso em PostgreSQL
Pode tentar o seguinte comando. -- Function: public.fn_get_codbarras_ean13(character varying) -- DROP FUNCTION public.fn_get_codbarras_ean13(character varying); CREATE OR REPLACE FUNCTION public.fn_get_codbarras_ean13(p_codbarras character varying) RETURNS character varying AS $BODY$ declare v_soma integer; v_digitos smallint[12]; v_DV smallint; begin --Verifica a quantidade de dígitos informados no parâmetro da função if length(p_codbarras) > 12 then raise exception 'O valor informado no parâmetro possui mais do que 12 dígitos'; end if; --Formata o valor do parâmetro com zeros à esquerda e o converte em um array v_digitos := string_to_array(lpad(p_codbarras,12,'0'), null); --É somado cada elemento do array, caso ele esteja num índice par o valor será --multiplicado por 3 antes de ser somado. for i in 1..12 loop if mod(i,2) = 0 then v_soma := coalesce(v_soma, 0) + (v_digitos[i] * 3); else v_soma := coalesce(v_soma, 0) + v_digitos[i]; end if; end loop; --O resultado da subtração de 10 pela sobra da divisão da soma dos dígitos --por 10 é o dígito verificador v_DV = 10 - mod(v_soma, 10); if v_DV = 10 then v_DV := 0; end if; --É retornado o código de barras concatenado ao dígito verificador return array_to_string(v_digitos, '') || v_DV; end $BODY$ LANGUAGE plpgsql VOLATILE STRICT COST 100; ALTER FUNCTION public.fn_get_codbarras_ean13(character varying) OWNER TO postgres; update ean_ecm set cod_ean = '' where cod_ean != public.fn_get_codbarras_ean13(substring(cod_ean from 1 for 12)); Obs. Caso dê erro, digite o comando. -
Validar código de barras / EAN de produtos
pergunta respondeu ao Rodrigo A. M. de douglascso em PostgreSQL
Update corrigido. update produtos set codigo_barra = '' where codigo_barra != public.fn_get_codbarras_ean13(substring(codigo_barra from 1 for 12)); Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_ -
Validar código de barras / EAN de produtos
pergunta respondeu ao Rodrigo A. M. de douglascso em PostgreSQL
Olá Rodrigo, agora que observei que ele está apagando os produtos e você queria um update. na minha base de dados de teste funcionou corretamente, você poderia informar alguns códigos incorretos e outros corretos da sua base de dados e a estrutura completa(sql) dessa tabela? Se possível me envie uma copia do seu banco para eu analisar. douglascsoliveira@hotmail.com Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_ -
Validar código de barras / EAN de produtos
pergunta respondeu ao Rodrigo A. M. de douglascso em PostgreSQL
ou update produtos set codigo_barra = '' where codigo_barra != public.fn_get_codbarras_ean13(substring(codigo_barra from 1 for 12)); Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_ -
Validar código de barras / EAN de produtos
pergunta respondeu ao Rodrigo A. M. de douglascso em PostgreSQL
Use o seguinte comando: update produtos set codigo_barra = '' produtos where codigo_barra != (SELECT * from public.fn_get_codbarras_ean13( (SELECT substring(codigo_barra from 1 for 12) FROM produtos WHERE id = 1) )) and id = 1; Douglas Carlos da Silva Oliveira Analista de TI, QA, DBA @douglas_carlos_ -
Qual a versão do postgresql e sistema operacional?
-
Validar código de barras / EAN de produtos
pergunta respondeu ao Rodrigo A. M. de douglascso em PostgreSQL
Bom dia, segue exemplo: create or replace function fn_get_codbarras_ean13(p_codbarras varchar(12)) returns varchar(13) as $$ declare v_soma integer; v_digitos smallint[12]; v_DV smallint; begin --Verifica a quantidade de dígitos informados no parâmetro da função if length(p_codbarras) > 12 then raise exception 'O valor informado no parâmetro possui mais do que 12 dígitos'; end if; --Formata o valor do parâmetro com zeros à esquerda e o converte em um array v_digitos := string_to_array(lpad(p_codbarras,12,'0'), null); --É somado cada elemento do array, caso ele esteja num índice par o valor será --multiplicado por 3 antes de ser somado. for i in 1..12 loop if mod(i,2) = 0 then v_soma := coalesce(v_soma, 0) + (v_digitos[i] * 3); else v_soma := coalesce(v_soma, 0) + v_digitos[i]; end if; end loop; --O resultado da subtração de 10 pela sobra da divisão da soma dos dígitos --por 10 é o dígito verificador v_DV = 10 - mod(v_soma, 10); if v_DV = 10 then v_DV := 0; end if; --É retornado o código de barras concatenado ao dígito verificador return array_to_string(v_digitos, '') || v_DV; end $$ language plpgsql volatile strict; SELECT public.fn_get_codbarras_ean13('789100031550'); -
Bom dia, não sei se entendi bem a sua duvida. Aqui alguns exemplos. SELECT CURRENT_DATE AS data; -- data hoje SELECT CURRENT_DATE + integer '1' AS data; -- data de amanhã SELECT CURRENT_DATE - integer '1' AS data; -- data de ontem SELECT CURRENT_DATE - date '2018-12-31' AS dias; -- quantidade de dias desde o começo de 2019 SELECT (CURRENT_DATE + INTERVAL '1 months')::timestamp::date AS data; -- data atual mais um mês SELECT (CURRENT_DATE + INTERVAL '1 years')::timestamp::date AS data; -- data atual mais um ano Atenciosamente, Douglas Carlos https://twitter.com/douglas_carlos_
-
conexoes em aberto valor = SET search_path=public
pergunta respondeu ao EliomarBento de douglascso em PostgreSQL
O pgAdmin cria algumas conexões para mostrar alguns dados. Se ao finalizar o software que utiliza o banco as conexões continuarem, deve ser somente do pgAdmin. Caso contrario, analisar o código do software. Ative o log para mais detalhes. -
Não consigo testar, está faltando tabela.
-
Bom dia, você pode adicionar permissões facilmente com o pgAdmin III, entrando em propriedades do usuário como na imagem. Também pode fazer o backup do banco de dados, desinstalar e instalar novamente. Nessa nova instalação não terá os antigo usuários e poderá cadastrar novos. Att. Douglas Carlos @douglascso