Stored Procedure Estranha
11/03/2009
0
Boa noite pessoal.
Estou iniciando com Oracle e tive uma dúvida em uma stored procedure de inserção.
Ela deveria fazer o seguinte: Verificar a existencia de registros, caso nao houvesse ela iria inserir um novo registro. Mas quando executo ela, ela faz o select e vai direto p. exception. Alguém poderia me ajudar ? Obrigado.
Segue a SP.
CREATE OR REPLACE
Procedure ´ASS_USR_EMP_IU´(
nFK_USUARIOS IN VRG.ASS_USR_EMP.FK_USUARIOS ¬TYPE,
nFK_EMPRESAS IN VRG.ASS_USR_EMP.FK_EMPRESAS ¬TYPE
)
IS
EMPRESAS VRG.ASS_USR_EMP.FK_EMPRESAS ¬TYPE;
BEGIN
SELECT ASS_USR_EMP.FK_EMPRESAS
INTO empresas
FROM ASS_USR_EMP
WHERE ASS_USR_EMP.FK_EMPRESAS = nFK_EMPRESAS AND
ASS_USR_EMP.FK_USUARIOS = nFK_USUARIOS;
IF SQL¬ROWCOUNT = 0 THEN
INSERT INTO ass_usr_emp (
fk_empresas,
fk_usuarios
) VALUES (
nfk_empresas,
nfk_usuarios);
END IF;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001,SQLERRM, TRUE);
END ASS_USR_EMP_IU;
Estou iniciando com Oracle e tive uma dúvida em uma stored procedure de inserção.
Ela deveria fazer o seguinte: Verificar a existencia de registros, caso nao houvesse ela iria inserir um novo registro. Mas quando executo ela, ela faz o select e vai direto p. exception. Alguém poderia me ajudar ? Obrigado.
Segue a SP.
CREATE OR REPLACE
Procedure ´ASS_USR_EMP_IU´(
nFK_USUARIOS IN VRG.ASS_USR_EMP.FK_USUARIOS ¬TYPE,
nFK_EMPRESAS IN VRG.ASS_USR_EMP.FK_EMPRESAS ¬TYPE
)
IS
EMPRESAS VRG.ASS_USR_EMP.FK_EMPRESAS ¬TYPE;
BEGIN
SELECT ASS_USR_EMP.FK_EMPRESAS
INTO empresas
FROM ASS_USR_EMP
WHERE ASS_USR_EMP.FK_EMPRESAS = nFK_EMPRESAS AND
ASS_USR_EMP.FK_USUARIOS = nFK_USUARIOS;
IF SQL¬ROWCOUNT = 0 THEN
INSERT INTO ass_usr_emp (
fk_empresas,
fk_usuarios
) VALUES (
nfk_empresas,
nfk_usuarios);
END IF;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001,SQLERRM, TRUE);
END ASS_USR_EMP_IU;
Torgge
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)