Tenho uma exception como a abaixo:
begin
begin
select x
into t
from tabela
exception
when no_data_found then
insert tabela_log...
end;
end;
Obrigado.
begin
begin
select x
into t
from tabela
exception
when no_data_found then
insert tabela_log...
end;
end;
NO_DATA_FOUND
.TOO_MANY_ROWS
.WHERE 1=2
(pra provocar que nenhuma linha retorne).SELECT SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(campo geom, 0.00005))
INTO vTHE_GEOM_AC
FROM tabela_geoac
WHERE id= id;
CREATE OR REPLACE PROCEDURE procedimento_teste IS
vcod NUMBER;
vthe_geom SDO_GEOMETRY;
vthe_geom_ai SDO_GEOMETRY;
vthe_geom_ac SDO_GEOMETRY;
vid NUMBER;
e_teste EXCEPTION;
vMsgErro VARCHAR2(100);
PRAGMA EXCEPTION_INIT (e_teste, -13050);
CURSOR cursor_teste IS
SELECT id, cod, the_geom FROM tabela_geo1 WHERE cod;
BEGIN
OPEN cursor_teste;
FETCH cursor_teste INTO vid, vcod, vthe_geom;
WHILE cursor_teste%FOUND LOOP
BEGIN
SELECT SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(ac.the_geom, 0.00005))
INTO vthe_geom_ac
FROM tabela_geo2 ac
WHERE cod = vcod;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO tabela_log VALUES (NULL, vcod, 'NO_DATA_FOUND', 'NOME_PROCEDURE', 'tabela_geo1', vid, null);
WHEN e_teste THEN
INSERT INTO tabela_log VALUES (NULL, vcod, 'ORA - 13050 não foi possível construir objeto espacial.', 'NOME_PROCEDURE', 'tabela_geo1', NULL, null);
END;
BEGIN
SELECT ai.THE_GEOM
INTO vthe_geom_ai
FROM tabela_geo3 ai
WHERE cod = vcod;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO tabela_log VALUES (NULL, vcod, 'NO_DATA_FOUND', 'NOME_PROCEDURE', 'tabela_geo1', vid, null);
END;
--processamento
--processamento
FETCH cursor_teste INTO vid, vcod, vthe_geom;
END LOOP;
CLOSE cursor_teste;
--------------------------------------------------------------------------------
EXCEPTION
When Others Then
vMsgErro := 'ERRO NO PROCESSAMENTO DA PROCEDURE: ' ||
To_Char(SqlCode) || ' - ' || SqlErrm;
Rollback;
RAISE_APPLICATION_ERROR (-1001, vMsgErro);
--------------------------------------------------------------------------------
END ;
/
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes