- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 10 anos, 1 mês atrás por
Ronnie Von Pereira Lopes.
-
AutorPosts
-
25 de junho de 2015 às 11:58 pm #107589
Ronnie Von Pereira Lopes
ParticipanteAmigos Boa tarde!
vejam se podem me ajudar, tenho a trigger abaixo feito em SQL preciso colocar a mesma para Oracle.SQL
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE TRIGGER [ASSINATURA_DIRETORIA] ON [dbo].[TMOVAPROVA]
FOR INSERT
AS
DECLARE @IDMOV INT
DECLARE CURSORMOV CURSOR FOR
SELECT A.IDMOV
from tmovaprova a,TMOV b, Gusuario c
WHERE a.IDMOV=b.idmov and a.codusuario=c.CODUSUARIO and
b.codtmv in(‘1.1.01′,’1.1.02’) AND
B.CAMPOLIVRE1 IS NULL
OPEN CURSORMOV
FETCH NEXT FROM CURSORMOV INTO @IDMOV
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TMOV SET CAMPOLIVRE1=
+ ‘Aprovador Por – ‘+
CONVERT(VARCHAR(25),C.NOME,103)+’- Dia – ‘+
CONVERT(VARCHAR(20),a.horarioaprovacao,103)+ ‘ as ‘ +
convert(varchar, a.horarioaprovacao,108)
from tmovaprova a,TMOV b, Gusuario c
WHERE a.IDMOV=b.idmov and a.codusuario=c.CODUSUARIO and
b.codtmv in(‘1.1.01′,’1.1.02’) AND
B.CAMPOLIVRE1 IS NULL AND
A.IDMOV = @IDMOVFETCH NEXT FROM CURSORMOV INTO @IDMOV
END
CLOSE CURSORMOV
DEALLOCATE CURSORMOVObrigado todos pela ajuda.
Attachments:26 de junho de 2015 às 10:51 pm #107594Wender
Participante@Ronnie
Segue abaixo seu T-SQL para PL/SQL conforme solicitado:
create or replace
trigger assinatura_diretoria
after insert
on tmovaprova
begin
declare
cursor c_cursormov
is
select c.nome,a.horarioaprovacao,b.rowid
from tmovaprova a inner join tmov b
on a.idmov = b.idmov
inner join gusuario c
on c.codusuario = a.codusuario
where b.codmov in ('1.1.01','1.1.02')
and b.campolivre1 is null;v_mov c_cursormov%rowtype;
begin
open c_cursormov;
loop
fetch c_cursormov into v_mov;
exit when c_cursormov%notfound;update tmov t
set t.campolivre1 = 'Aprovador Por - '||to_char(v_mov.nome)||' - Dia - '||to_char(v_mov.horarioaprovacao, 'DD/MM/YYYY')||' as '||to_char(v_mov.horarioaprovacao, 'HH24:MM:SS')
where rowid = v_mov.rowid;end loop;
close c_cursormov;
end;
end;
/29 de junho de 2015 às 5:17 pm #107596Ronnie Von Pereira Lopes
ParticipanteNossa Amigo, ficou show demais, muitíssimo obrigado mesmo. Me ajudou demais, eu venho de 10 anos trabalhando com SQL, agora no novo emprego preciso aprender Oracle.
Parabéns e Obrigado
29 de junho de 2015 às 5:30 pm #107598Ronnie Von Pereira Lopes
ParticipanteBom dia!
Meu jovem desculpas incomodar , rodei a SQL e me retornou alguns erro de log, esta em anexo.
Agradeço a ajudaAttachments:29 de junho de 2015 às 7:40 pm #107601Wender
Participante@Ronnie
Me desculpe, coloquei o nome da coluna da tabela errada o erro esta aqui
where b.codmov in ('1.1.01','1.1.02')
Para
where b.codtmv in ('1.1.01','1.1.02')
Apenas revise o nome das colunas se esta da certo, outra coisa, certifique que o Schema que será criado a trigger possui permissão de select nas três tabelas e update na tabela tmov.
Qualquer problema poste o log novamente.
Abraços.29 de junho de 2015 às 10:56 pm #107602Ronnie Von Pereira Lopes
ParticipanteMeu Amigo Wender ficou show, fiz a alteração que você falou e deu certo, meu muito Obrigado. valeu mesmo.
-
AutorPosts
- Você deve fazer login para responder a este tópico.