Jump to content

caiquestevanatto

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Comum

About caiquestevanatto

  1. caiquestevanatto

    Trigger para gravação de LOG

    Obrigado mais uma vez Motta! Criei a trigger abaixo, porém gostaria de incrementar ela, onde na descrição, além de informar o ID (como já está informando), informar também qual campo foi alterado, como por exemplo, a quantidade. Ficaria mais ou menos assim: 3 | 17/10/18 | Produto 4 alterado a quantidade CREATE OR REPLACE TRIGGER CREATE_LOG AFTER UPDATE OR INSERT ON PRODUTO FOR EACH ROW BEGIN INSERT INTO LOG VALUES (IDLOG.NEXTVAL,SYSDATE, 'Produto ' || cast(:NEW.IDPRODUTO as varchar(10)) || ' alterado' ); end; é possível ?
  2. caiquestevanatto

    Trigger Baixa Estoque

    Obrigado pelo retorno!Porém descobri um outro problema... A trigger é criada com sucesso, porém ao realizar um teste, fazendo um insert na tabela ITEMPEDIDO(insert into itempedido values (7,3,1300.33,3,2)), é apresentada a mensagem: ORA-02291: restrição de integridade (SYSTEM.FK_IDPEDIDO) violada - chave mãe não localizada.A coluna IDPEDIDO é uma PK da tabela PEDIDO e creio que o motivo do erro é que primeiramente deve-se inserir o registro na tabela PEDIDO antes de fazer o insert na ITEMPEDIDO. Existem 2 tabelas, uma é a PEDIDO, no qual esta as informações do pedido, como por exemplo: id do pedido (PK), ID cliente, data do pedido e o valor total.Outra é a tabela ITEMPEDIDO, onde está os registros: ID PEDIDO (FK PEDIDO), nºitem, Valor, Quantidade e ID Produto. Ou seja, primeiramente o registro IDPEDIDO, deve constar na tabela PEDIDO, antes de ser inserido na tabela ITEMPEDIDO, correto ? Consegue me dar uma luz?
  3. caiquestevanatto

    Trigger Baixa Estoque

    Boa noite pessoal,estou criando uma trigger em Oracle, que ao realizar uma venda (insert ou update), a trigger retire a quantidade vendida do estoque. Porém, estou com alguma dificuldades.A trigger criada é a seguinte:CREATE OR REPLACE TRIGGER BAIXA_ESTOQUEAFTER UPDATE OR INSERT ON ITEMPEDIDOFOR EACH ROWDECLARE IDPEDIDO INT;BEGINSELECT IDPEDIDO INTO IDPEDIDO FROM PEDIDO WHERE IDPEDIDO = :NEW.IDPEDIDO;IF (IDPEDIDO > :NEW.IDPEDIDO) THENUPDATE PRODUTO SET QUANTIDADE = QUANTIDADE - :NEW.QUANTIDADE WHERE IDPRODUTO = :NEW.IDPRODUTO;END IF;END;Realizo o insert na tabela itempedido, porém quando vou verificar no select * from produto, a quantidade não foi modificada.Conseguem me ajudar onde estou errando ?
  4. caiquestevanatto

    Trigger para gravação de LOG

    Boa noite pessoal,Sou novato no mundo Oracle e estou com dificuldades em criar uma trigger que toda vez que um produto for alterado, deverá criar um registro de LOG.Criei a trigger abaixo porém não tenho certeza de que estar certa, pois esta apresentando a mensagem "2/48 PL/SQL: ORA-00984: coluna não permitida aqui" na linha os está AFTER UPDATE OR INSERT ON PRODUTO.CREATE OR REPLACE TRIGGER CREATE_LOGAFTER UPDATE OR INSERT ON PRODUTOFOR EACH ROWBEGIN INSERT INTO LOG VALUES (NEXTVAL,''02/10/2018'', "log criada" );end;Além disso, no insert, coloquei apenas uma data simbolica, pois tem que inserir a data atual e não faço ideia de como fazer isso.Segue estrutura da tabela LOG:IDLOG NUMBER(38,0) DATA DATE DESCRICAO VARCHAR2(255 BYTE)podem me ajudar por favor ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.