ATRIBUIR VALOR AS VARIAVEIS DA TRIGGER ATRAVES DE UM SELECT

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
gracianow
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 08 Out 2008 3:57 pm
Localização: São Paulo -SP
Wagner Graciano
Developer | Designer
Sistemas Web | Criação e Reformulação de Websites
INTRANET | EXTRANET
Skype: gracianow
messenger: gracianow@msn.com

Aolá amigos sou iniciante e necessito de sua ajuda para atribuir valor as variaveis de uma trigger a través do sleect do último registo de uma outra tabela. Minha dúvina é em como vou atribuir o valor a cada uma das variaveis e onde posiciono o select no código:

Selecionar tudo

Create Or Replace Trigger Srp_Atualiza_Movm_PRONTUARIO
After Insert ON SRP_MOVM_REQUISICAO 
For Each Row

Declare

V_Dt_Requisicao Date;
V_Fk_Cd_Prontuario Number;
V_Fk_Cd_Recurso Number;
V_Tp_Prontuario Number;
V_Tp_Solicitacao_Pront Number;

Begin

Insert Into Srp_Movm_Prontuario (Id_Movm_Prontuario, Fk_Cd_Prontuario, Fk_Id_Requisicao, Fk_Cd_Paciente, Tp_Prontuario, Tp_Solicitacao, Dt_Requisicao)
Values (Seq.Id_Movm_Prontuario.NEXTVAL, V_Fk_Cd_Prontuario, :NEW.ID_REQUISICAO, V_Fk_Cd_Prontuario, V_Tp_Prontuario, V_Tp_Solicitacao_Pront, SYSDATE);

End;

Podem me ajudar?
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

primeiramente, não é possível referenciar a tabela com select/insert/update/delete dentro da trigger da própria tabela...

vai receber erro de tabela mutante...
gracianow
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 08 Out 2008 3:57 pm
Localização: São Paulo -SP
Wagner Graciano
Developer | Designer
Sistemas Web | Criação e Reformulação de Websites
INTRANET | EXTRANET
Skype: gracianow
messenger: gracianow@msn.com

Olá, a tabela a que me refiro seria uma outra tabela e não a mesma.
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Mas esses valores que você quer pegar no Select são da própria tabela? Se for você vai cair no famigerado erro "table is mutating"...

Por gentileza, dá uma lida no tópico abaixo, onde isso foi discutido longamente:
http://glufke.net/oracle/viewtopic.php? ... c&start=25
gracianow
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 08 Out 2008 3:57 pm
Localização: São Paulo -SP
Wagner Graciano
Developer | Designer
Sistemas Web | Criação e Reformulação de Websites
INTRANET | EXTRANET
Skype: gracianow
messenger: gracianow@msn.com

Obrigado pelas obeservações; mas o que está em questão é que preciso popular uma tabela da base B com os dados que serão inseridos em outra tabela que tem os mesmos campos na base A. Os campos são iguais mas de tabelas distintas e de usuários distintos.
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Quando você diz de outra base, você quer dizer apenas de outro Owner ou de outro banco de dados, por meio de DB Link?

Se for por DB link aí a conversa muda e vira uma transação distribuída.

Se for apenas replicar em outra tabela os mesmos dados da tabela que já está sendo inserida, é só incluir os :new. no Values do Insert. Se não é isso o que você quer você precisaria explicar de quais tabelas e linhas você precisa buscar esses dados. O ideal é postar um exemplo que possamos enxergar e executar, com exemplo de estrutura de tabelas e dados e mostrando a lógica do que você quer que aconteça quando linha x for inserida.
Responder
  • Informação
  • Quem está online

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