Mensagem de erro

0 respostas
V

Ola,

fiz uma funçao para atualizar o campo Diretor (mgr) de uma tabela.
Se eu tento trocar o valor do DiretorNovo por un diretor que NAO EXISTE da um erro - NORMAL pois o campo mgr é FK do campo empno.
Mas eu gostaria de enviar uma mensagem compreensivel: FUNCIONARIO NAO EXISTE por exemplo, e nao aquela mensagem do sistema.

Tentei isso mais nao deu certo:[b]

IF (SELECT empno FROM emp WHERE diretorNovo != empno) THEN
RAISE NOTICE 'Funcionario nao existe';
END IF;

COMO DEVO FAZER???

CREATE OR REPLACE FUNCTION update(diretorNovo IN INTEGER , diretorVelho IN INTEGER)
RETURNS VOID 
AS $$
DECLARE
total  integer:=0;
linha emp%rowtype;

--cursor
modificar CURSOR IS SELECT * FROM emp WHERE mgr = diretorVelho;

BEGIN
total:=0;
OPEN modificar;

IF (SELECT empno FROM emp WHERE diretorNovo != empno) THEN
RAISE NOTICE 'Funcionario nao existe';
END IF;

LOOP
        FETCH modificar INTO linha;
        EXIT WHEN NOT FOUND;

UPDATE emp SET mgr=diretorNovo WHERE mgr=linha.mgr;

--Contador
     total:= total+ 1;
	IF total> 0 THEN	
          RAISE NOTICE 'Registros Atualizados.: %', V_TOT_UPD; 
       END IF;

END LOOP;
CLOSE modificar;
END;
$$ LANGUAGE 'plpgsql';

Obrigada,

Criado 7 de abril de 2013
Respostas 0
Participantes 1