Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Consultas vacías

Estas en el tema de Consultas vacías en el foro de Oracle en Foros del Web. Hola, necesito urgentemente que me ayudéis... Tengo una consulta en Oracle, la cual no me devuelve datos, y necesito que me devuelva algo aunque no ...
  #1 (permalink)  
Antiguo 22/01/2009, 06:39
Avatar de Piruleta  
Fecha de Ingreso: enero-2008
Ubicación: En Madrid
Mensajes: 36
Antigüedad: 16 años, 10 meses
Puntos: 0
Exclamación Consultas vacías

Hola,

necesito urgentemente que me ayudéis... Tengo una consulta en Oracle, la cual no me devuelve datos, y necesito que me devuelva algo aunque no se encuentren datos. Es decir:

SELECT IMPORTE FROM TABLA WHERE CONDICION;

Caso de que no encuentre datos para la condición dada que me devuelva 0. Solamente puedo hacerlo en una consulta.

Gracias y salu2.
  #2 (permalink)  
Antiguo 22/01/2009, 19:37
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: Consultas vacías

si no mal recuerdo con un nvl(importe,0) quedaria lo que pides
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 23/01/2009, 02:26
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Consultas vacías

No, te confundes.

Si he entendido bien , el se refiere a un NO DATA FOUND , no a un dato nulo y eso no se puede hacer.

SQL> select *
2 from dual
3 where dummy = 'p';

ninguna fila seleccionada

SQL> select nvl(dummy,'tt')
2 from dual
3 where dummy = 'CARLOS';

ninguna fila seleccionada

Eso en sql puro y duro. Si lo haces el pl si, haces un SELECT ......INTO y gestionas el NO DATA FOUND en la EXCEPTION
  #4 (permalink)  
Antiguo 23/01/2009, 06:38
Avatar de Piruleta  
Fecha de Ingreso: enero-2008
Ubicación: En Madrid
Mensajes: 36
Antigüedad: 16 años, 10 meses
Puntos: 0
Exclamación Respuesta: Consultas vacías

Lo malo es que no tengo oportunidad de hacer PL...
  #5 (permalink)  
Antiguo 27/01/2009, 04:56
Avatar de Piruleta  
Fecha de Ingreso: enero-2008
Ubicación: En Madrid
Mensajes: 36
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Consultas vacías

Al final me han dicho en el trabajo que ponga una union de las dos tablas, que la primera lleve la condición y en la segunda consulta la condición negada:
SELECT * FROM TABLA WHERE <condición> UNION SELECT * FROM TABLA WHERE NOT (<condición>).

Pero ahora tengo el problema de que si la primera consulta devuelve datos, la segunda puede devolverlos también, y yo solamente quiero que me devuelva datos de una de ellas; algo así como un XOR de consultas...

¿Alguien sabe como hacerlo?

Salu2.
  #6 (permalink)  
Antiguo 28/01/2009, 12:07
 
Fecha de Ingreso: diciembre-2007
Ubicación: Caracas - Venezuela
Mensajes: 32
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: Consultas vacías

Dejame ver si entendi, quieres que cuando un registro o una columna sea NULL te devuelva un valor predefinido..?

Si es eso....Utiliza Decode(columna,NULL,0)

Esto es así:
If Columna is Null then
columna := 0;
end if

Explico mejor

Select decode(column1,null,0),
column2 from TABLA1;
Explico el decode actua como un IF-Else-End if;
y el codigo del select dice:
Si column1 = null entonces column1 = 0
Espero que te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:12.