Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2006, 06:46
Avatar de MACGREGOR
MACGREGOR
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 3 meses
Puntos: 0
No es NULL pero es nulo!?¡¿

Tengo una pequeña duda y me gustaría que alguien me aclarara un concepto...
Al ejecutar la siguiente select:

SELECT U.ID_USER FROM MICRO.TBL_USER U WHERE U.USERNAME = 'MACGREGOR'

Si el usuario existe me devuelve el identificador, pero si no existe no devuelve nada. Cuando digo nada me refiero a que no devuelve NULL, devuelve nada de nada! :(

Pensaba que retornaba NULL de manera que he utilizado esa consulta dentro de la siguiente:

SELECT CASE WHEN S.ID_USER IS NOT NULL THEN 0 ELSE (SELECT MAX(U.ID_USER)+1 FROM MICRO.TBL_USER U) END
FROM (SELECT U.ID_USER FROM MICRO.TBL_USER U WHERE U.USERNAME = 'MACGREGOR')S

La idea es que retorne 0 si el nombre de usuario existe o el primer identificador libre para añadir un nuevo usuario... Si el usuario existe retorna 0 si no existe, no retorna nada :(

Yo programo en Perl para conectar con Oracle, y puedo solucionar el problema lanzando dos consultas y controlando desde Perl lo que me devuelve Oracle, pero gastaría más recursos y sería más lento...

Además me corroe la curiosidad de saber que pasa y porque!

Alguien me puede hechar una mano?? Gracias.