Re: [pgbr-geral] Retornar apenas números

2017-11-02 Por tôpico Felipe Rigotti -SBsistemas
Em 2 de novembro de 2017 02:33, Danilo Silva 
escreveu:

> Pessoal,
>
> Tenho um campo do tipo text onde são armazenados letras+números ou somente
> números, exemplo: "PT145896ZZ" ou "116485".
>
> Como posso fazer uma consulta para retornar apenas as linhas onde
> contenham apenas números, no exemplo acima, queria retornasse apenas
> "116485".
>
> []s
> Danilo
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


Bom dia talvez usando uma expressão regular:

select campo
from tabela
where campo ~'^[0-9]+$'

E se você quiser extrair os números inclusive das colunas que tenham
letras, aí você pode usar *regexp_replace*
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Dúvida Trigger

2016-08-01 Por tôpico Felipe Rigotti -SBsistemas
Em 31 de julho de 2016 12:35, Matheus de Oliveira <matioli.math...@gmail.com
> escreveu:

> On Jul 27, 2016 07:46, "Felipe Rigotti -SBsistemas" <
> fel...@sbsistemas.com.br> wrote:
> >
> > a ideia inicial seria não alterar a "principal" (tab_a)
>
> Então explique melhor seu problema, porque eu tinha entendido que era
> exatamente o que você queria fazer. Talvez seu exemplo tenha ficado
> genérico demais, "XY problem".
>
>
Então, tenho uma tabela de contas a receber, e quando altero determinados
campos, pela trigger lança um registro em uma tabela de movimentações,
precisaria resgatar o registro que foi incluído na tabela de movimentações
pela trigger.
Se fosse possível pelo update da tabela de contas a receber seria ideal,
mas pelo que testei não consegui.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Dúvida Trigger

2016-07-27 Por tôpico Felipe Rigotti -SBsistemas
2016-07-26 19:48 GMT-03:00 Matheus de Oliveira <matioli.math...@gmail.com>:

>
> 2016-07-26 13:29 GMT-03:00 Felipe Rigotti [SBSistemas] <
> fel...@sbsistemas.com.br>:
>
>> CREATE FUNCTION fnc_tgr_tab_a_upd (
>>
>> )
>>
>> RETURNS trigger AS
>>
>> $body$
>>
>> DECLARE chave_tabb integer;
>>
>> BEGIN
>>
>> insert into tab_b(campo4) values(new.campo1) returning
>> campo3 into chave_tabb;
>>
>>return new;
>>
>> END;
>>
>> $body$
>>
>> LANGUAGE 'plpgsql'
>>
>> VOLATILE
>>
>> CALLED ON NULL INPUT
>>
>> SECURITY INVOKER;
>>
>>
>>
>> CREATE TRIGGER tab_a_tr
>>
>>   AFTER UPDATE
>>
>>   ON public.tab_a FOR EACH ROW
>>
>>   EXECUTE PROCEDURE fnc_tgr_tab_a_upd();
>>
>>
>>
>> update tab_a set campo2='z' where campo1=1
>>
>
> Você quer alterar na própria linha que foi atualizada, certo?
>
> Se sim, ao invés de usar AFTER, use BEFORE e faça:
>
>
> insert into tab_b(campo4) values(new.campo1) returning campo3 into
> chave_tabb;
> new.campos2 := chave_tabb;
> return new;
>
> At.
> --
> Matheus de Oliveira
>
>
>
Bom dia, a ideia inicial seria não alterar a "principal" (tab_a), mas se
não tiver jeito vou ter que criar um novo campo nessa tabela para armazenar
a chave da segunda tabela só para pegar pelo update.

Felipe Rigotti
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Dúvida Trigger

2016-07-26 Por tôpico Felipe Rigotti [SBSistemas]
Boa tarde pessoal, tô precisando de uma ajuda, tenho uma trigger after
update for each row, e nessa trigger eu com base em vários testes posso dar
insert em outra tabela que tem um serial como chave, gostaria se saber se
existe uma maneira de eu “resgatar” o código da chave da segunda tabela no
próprio update, para exemplificar segue abaixo exemplo.

 

CREATE TABLE tab_a (

  campo1 INTEGER, 

  campo2 TEXT

) WITHOUT OIDS;

 

CREATE TABLE tab_b (

  campo3 serial, 

  campo4 TEXT

) WITHOUT OIDS;

 

insert into tab_a(campo1,campo2) values (1,'a');

insert into tab_a(campo1,campo2) values (2,'b');

insert into tab_a(campo1,campo2) values (3,'c');

insert into tab_a(campo1,campo2) values (4,'d');

 

CREATE FUNCTION fnc_tgr_tab_a_upd (

)

RETURNS trigger AS

$body$

DECLARE chave_tabb integer;

BEGIN

insert into tab_b(campo4) values(new.campo1) returning
campo3 into chave_tabb;

   return new;

END;

$body$

LANGUAGE 'plpgsql'

VOLATILE

CALLED ON NULL INPUT

SECURITY INVOKER;

 

CREATE TRIGGER tab_a_tr

  AFTER UPDATE 

  ON public.tab_a FOR EACH ROW 

  EXECUTE PROCEDURE fnc_tgr_tab_a_upd();

  

update tab_a set campo2='z' where campo1=1

 

 

O que gostaria de fazer seria algo como:

update tab_a set campo2='z' where campo1=1 returning chave_tabb;

 

Tem como?

 

 

 


Cordialmente,
Felipe Rigotti
---
  fel...@sbsistemas.com.br
--
SBsistemas
  www.sbsistemas.com.br
  sbsiste...@sbsistemas.com.br
(54) 3342-
 

  _  

Esta mensagem, incluindo os seus anexos, contém informações confidenciais
destinadas a indivíduo e propósito específicos, e é protegida por lei. Caso
você não seja o citado indivíduo, deve apagar esta mensagem. É
terminantemente proibida a utilização, acesso, cópia ou divulgação não
autorizada das informações presentes nesta mensagem. As informações contidas
nesta mensagem e em seus anexos são de responsabilidade de seu autor, não
representando idéias, opiniões, pensamentos ou qualquer forma de
posicionamento por parte da SBsistemas. 

  _  

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral