Jump to content

Trigger de validação de entrada


camoes

Recommended Posts

Boa tarde.

precisava de fazer um “Trigger que garanta que assegure não ser possível registar uma intervenção associada a uma atividade de um projeto que já tenha sido dada como concluída .”

as tabelas são as seguintes:

(projecto)

pat_projeto:

(pk)is_projeto, id_pat, estado, designscao, orcamento, data_fim_prevista, valor_final, data_registo

atividade

(pk)id_atividade,(fk) id_projeto, estado, tipo_atividade, data_inicio, data_fim, data_estado, custo_previsto_hora, data_registo

os estados, nas 2 tabelas, são independentes e 4= fechado em ambas.

podem-me ajudar?

Já tentei várias abordagens mas dá sempre erros vários e que não compreendo

o mesmo se passa quando tento fazer "

1. Trigger que atualize o estado dum projeto quando se alterar o estado da ultima atividade para concluída. "

Link to comment
Share on other sites

Mostra o código do trigger. E dava jeito que mostrares os erros.

Se for o que estou a pensar, que é o típico erro "Mutating", tens de recorrer a Compound Triggers.

Mas dá mais detalhes

Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Link to comment
Share on other sites

create or replace trigger trg7_intervencao_atividade
before insert on intervencao
for each row
declare
id_ativ_temp number;
id_estado_temp number;
ex_estadoconcluido exception;
begin
select id_actividade from intervencao into id_ativ_temp;
select id_estado_atividade from estados_atividade into id_estado_temp where intervencao.id_actividade=id_ativ_temp;
if intervencao.id_estado_temp =4 then
raise ex_estadoconcluido;
end if

exception
when ex_estadoconcluido then
raise_application_error(-20000, 'Intervencao com atividade ja concluida!');
when others then
raise_application_error(-20001, sqlerrm(sqlcode));
end trg7_intervencao_atividade;

  • Error(6,5): PL/SQL: SQL Statement ignored
  • Error(6,43): PL/SQL: ORA-00933: SQL command not properly ended
  • Error(7,5): PL/SQL: SQL Statement ignored
  • Error(7,60): PL/SQL: ORA-00933: SQL command not properly ended
  • Error(12,1): PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following: ; The symbol ";" was substituted for "EXCEPTION" to continue.
Edited by apocsantos
Link to comment
Share on other sites

o meu outro post ?? apagado? 😄 LOL

ups.. estou no tópico errado! 😄 kakak

inté!

já agora, se o erro fosse "table is muttating", quer dizer que estás a fazer asneira 😄 ou seja, estás a fazer um update com o comando update a resgistos que estão a ser actualizados na mesma transação!

hasta!

mais uma dica: SELECT .. INTO .. FROM e não SELEC .. FROM .. INTO

pronto.. mais uma dica.. o END IF tb precisa de ;

e mais não digo 😄

Edited by jsWizard
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.