Trigger Update por Linhas C/ Duas Tabelas

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Ter, 10 Jul 2018 11:28 am

Prezados(as),

Sou iniciante em PL/SQL, preciso criar uma trigger com a seguinte situação, quando o campo CFOP da tabela "ra_customer_trx_lines_all" for igual à 7127 o campo EXPORT_DRAWBACK_NUMBER da tabela "JL_BR_CUST_TRX_LINES_EXTS" deverá ser atualizado com uma determinada informação, preciso fazer isso linha a linha quando essa condição ocorrer, por gentileza, poderiam me ajudar?

Abs.
mafrancisco
Localização: Santo André - SP

Mensagemem Ter, 17 Jul 2018 10:41 am

Olá,
Não conheço a estrutura de suas tabelas mas basicamente poderia ser feito da seguinte forma:
Código: Selecionar todos
CREATE OR REPLACE TRIGGER << nome da sua trigger >>
  /*Sou iniciante em PL/SQL, preciso criar uma trigger com a seguinte situação,
  quando o campo CFOP da tabela "ra_customer_trx_lines_all" for igual à 7127
  o campo EXPORT_DRAWBACK_NUMBER da tabela "JL_BR_CUST_TRX_LINES_EXTS"
  deverá ser atualizado com uma determinada informação, preciso fazer isso linha a linha
  quando essa condição ocorrer, por gentileza, poderiam me ajudar?*/
  BEFORE INSERT OR UPDATE ON ra_customer_trx_lines_all
  REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW
BEGIN
  IF :new.cfop = '7127' THEN
    BEGIN
      UPDATE jl_br_cust_trx_lines_exts
         SET export_drawback_number = '<<determinada informação>>'
       WHERE chave = :new.chave;-- nesta parte deve haver a lógica de junção das tabelas
    EXCEPTION
      WHEN OTHERS THEN
        raise_application_error(-20000, SQLERRM);
    END;
  END IF;
END;


Em << nome da sua trigger >> você coloca o nome de acordo com sua padronização.
bispovj
Localização: Porto Alegre - RS

Mensagemem Qua, 25 Jul 2018 11:13 am

Olá,

Meu amigo eu criei a trigger como está abaixo baseado na sua sugestão mas não funcionou, tem idéia do que possa ser?

CREATE OR REPLACE TRIGGER XV_TESTE_DRW
/*Sou iniciante em PL/SQL, preciso criar uma trigger com a seguinte situação,
quando o campo CFOP da tabela "ra_customer_trx_lines_all" for igual à 7127
o campo EXPORT_DRAWBACK_NUMBER da tabela "JL_BR_CUST_TRX_LINES_EXTS"
deverá ser atualizado com uma determinada informação, preciso fazer isso linha a linha
quando essa condição ocorrer, por gentileza, poderiam me ajudar?*/
Código: Selecionar todos
BEFORE INSERT OR UPDATE ON ra_customer_trx_lines_all
  REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW
BEGIN
  IF :new.global_attribute1 = '7127' THEN
    BEGIN
      UPDATE jl_br_cust_trx_lines_exts
         SET export_drawback_number = '20170056899'
       WHERE customer_trx_id = :new.customer_trx_id;-- nesta parte deve haver a lógica de junção das tabelas
    EXCEPTION
      WHEN OTHERS THEN
        raise_application_error(-20000, SQLERRM);
    END;
  END IF;
END;
mafrancisco
Localização: Santo André - SP



Voltar para PL/SQL

Quem está online

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

cron