- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 9 anos, 4 meses atrás por Ronnie Von Pereira Lopes.
-
AutorPosts
-
25 de junho de 2015 às 11:58 pm #107589Ronnie Von Pereira LopesParticipante
Amigos 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 #107594WenderParticipante@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 LopesParticipanteNossa 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 LopesParticipanteBom 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 #107601WenderParticipante@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 LopesParticipanteMeu 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.