Oracle - Funciones y Variables

 
Vista:

Funciones y Variables

Publicado por arauxa (4 intervenciones) el 06/08/2008 12:46:29
Hola, no tengo mucha idea de SQL y necesitaría que alguien me ayudase.
Quiero hacer los siguiente, necesito que al iniciar una llamada a un programa, se compruebe en una tabla si existen registros con un valor determinado para un campo. Si existen que se pare el programa (ya tengo una funcion que hace esto ultimo).
Mis dudas, para hacer la comprobación:
- Tendría que recorrer toda la tabla con un cursor o algo asi?
- No se puede hacer utilizar una instruccion tipo IF EXIST (el problema es como declaro la variable donde meter resultado de la consulta)???

Lo que yo tenia pensado era algo así, pero creo que no vale:
DECLARE
variable RECORD;
select * into variable from nombre_tabla where campo1='1'; (esta consulta normalmente siempre devolvera más de un registro)
if variable exists then
funcion que para el programa
end if;

Gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Fernando Garcia

RE:Funciones y Variables

Publicado por Fernando Garcia (40 intervenciones) el 06/08/2008 14:44:08
Hola Arauxa:

Una posibilidad,

SQL> create table nombre_tabla (campo1 char(1));

Table created.

SQL> insert into nombre_tabla values ('1');

1 row created.

SQL> select count(*) from dual
2 where exists (select 1 from nombre_tabla where campo1 = '1');

COUNT(*)
----------
1

SQL> select count(*) from dual
2 where exists (select 1 from nombre_tabla where campo1 = '2');

COUNT(*)
----------
0

La clausula EXISTS "para" apenas se satisface la expresion, con lo cual no recorreras toda la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar