› Fóruns › SQL e PL/SQL › Converter Trigger de Update SQL SERVER PARA ORACLE
- Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 11 anos, 11 meses atrás por
Wender.
-
AutorPosts
-
2 de abril de 2014 às 2:45 am #106469
Thiago Jader Macedo da Cruz
ParticipanteBoa noite pessoal!!!
Gostaria de uma ajuda na conversão de uma trigger de sql server para Oracle atualmente trabalho com sql server porem estou migrando para o oracle. a regra é a seguinte:
tabela Mat = materiais e smk serviços materiais e kits
oque eu preencher de valor em mat_prc_ult_entrada deve ser atualizado com mesmo valor em smk_preco_custo onde eu comparo o codigo do material com o codigo do serviço que usa o material
‘SQL SERVER’
CREATE TRIGGER TGR_PRECOCUSTO ON MAT
FOR UPDATE
ASDECLARE @cod CHAR(8);
DECLARE @valor numeric(20,10);select @cod=i.mat_smk_cod from inserted i;
select @valor =i.mat_prc_ult_entrada
from inserted i;UPDATE smk SET smk_preco_custo = @valor
WHERE smk_cod = @cod and smk_tipo = ‘M’Desde já agradeço a ajuda.
6 de abril de 2014 às 8:18 pm #106494Fábio Prado
ParticipanteThiago,
Segue abaixo um código de exemplo de uma trigger que utilizo em meus treinamentos de PL/SQL, para ajudar vc a criar a sua. QQ dúvida na estrutura é só perguntar:
-- criando a trigger
create or replace TRIGGER HR.TR_EMPLOYEES_LOG
AFTER INSERT OR DELETE ON HR.EMPLOYEES
REFERENCING OLD AS LA NEW AS LN
FOR EACH ROW
DECLARE
V_OPERACAO VARCHAR2(20);
BEGIN
V_OPERACAO:= CASE WHEN DELETING THEN 'DELETE' ELSE 'INSERT' END;
-- insere historico de cargos anteriores do empregado
INSERT INTO HR.LOG_EMPREGADOS
(ID, DT_INCLUSAO, NM_USER, TP_OPERACAO)
VALUES
(DECODE(V_OPERACAO,'INSERT',:LN.EMPLOYEE_ID,:LA.EMPLOYEE_ID), SYSDATE, USER, V_OPERACAO);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
/
[]s
Fábio Prado
http://www.fabioprado.net10 de abril de 2014 às 3:31 pm #106519Thiago Jader Macedo da Cruz
ParticipanteObrigado Fabio pela disponibilidade e ajuda da sua parte.este exemplo vai me ajudar muito.
17 de abril de 2014 às 7:37 am #106548Victor Armbrust
MestreOla
Oracle SQL DEVELOPER faz isso
Abs
Victor5 de junho de 2014 às 4:26 pm #106674Wender
ParticipanteOlá thiago segue abaixo:
create or replace trigger TGR_PRECOCUSTO
after update on MAT
referencing new as new old as old
for each rowdeclare
v_cod char(8);
v_valor number;begin
v_cod := :new.mat_smk_cod; v_valor := :new.mat_prc_ult_entrada; update smk set smk_preco_custo = v_valor where smk_cod=v_cod;end;
/Testado.
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › Converter Trigger de Update SQL SERVER PARA ORACLE