Como descobrir se tabela foi alterada

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Tenho uma tabela com vários campos. Vamos imaginar que eu tenho um campo gestor e colaborador.
Colaborador - 'João'
Gestor - 'Pedro'
Acontece que o colaborador 'João' passou a ter a Silvia como gestora
Colaborador - 'João'
Gestor - 'Silvia'
Como posso fazer uma rotina que verifique isso, o que o gestor de João mudou de Pedro para Silvia?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Você só quer saber se a informação mudou? Ou quer saber também O QUE mudou ?

Se só quer saber se mudou ou não, basta você salvar em um outro campo a data de quando foi alterado. (por exemplo, DATA_ALTERACAO).
Pra isso pode se criar TRIGGER que faz a comparação, ou dentro do seu próprio programa.

Mas pra saber O QUE mudou, o único jeito é salvar a informação anterior em um novo campo, ou tabela.
Aí depende do que você quer fazer.
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Isso vai ficar schedulado e a idéi é criar uma Flag, que coloque P=Pendente e E=Enviado. Se mudar de E para P, houve alteração, a pergunta é: Acho que basta dar um select nesse campo e ver se há pendente, certo. Caso retorne um Count > 0, aí sim, faço a rotina. Essa rotina precisa exporta duas linhas em formato txt, o anterior e o novo, para cada registro alterado.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Sim, se você já tem o FLAG, daí é só usar ele.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes