puedo poner un if(select..... en sql oracle???? como??

david
13 de Febrero del 2006
puedo poner un if(select..... en sql oracle???? como??
tengo esto i me da un error:

if (select count(*) from insered>1)
begin
raiserror ('error en la insercion: multiple',1,1)
rollback
end
else
begin
set @idpc=lower(select idpc from insered)
set @username=lower(select username from insered)
set @fecha=(select fecha from insered)
set @so=lower(select so from insered)
set @ipaddress=lower(select ipaddress from insered)

eddie_
13 de Febrero del 2006
No se puede.
En su lugar puedes usar:

select count(*)
into v_sel
from insered;

if v_sel>1 then
....

Rodolfo Reyes
13 de Febrero del 2006
Creo que lo que estas tratando de hacer es un manejo de error cuando haces un Insert.

En Oracle se hace de la siguiente manera:

begin
INSERT INTO TABLA_001
VALUES(1,2,3);
EXCEPTION
--Aqui estas capturando cuando violas la llave primaria
when dup_val_on_index then
dbms_output.put_line(\'Ha ocurrido un error!!!\');
--When others te captura cualquier error
when others
dbms_output.put_line(\'Ha ocurrido un error!!!\');
end;


La idea es mas o menos como el Try y Catch que se utiliza el Java.