BBDD


Oracle: Insertar valores nulos desde Java con PreparedStatement

Cuando estamos usando un PreparedStatement en Java para ejecutar una sentencia SQL sobre Oracle, por ejemplo, un SELECT, hemos de usar métodos diferentes dependiendo del tipo de dato que queramos insertar/recuperar. Por ejemplo, imaginemos un método que inserta un Producto que se le pasa por parámetro:

El problema es cuando estos valores que les pasamos, queremos que sean null. Dependiendo del tipo de dato, usaremos un método u otro. Por ejemplo, cuando es un String, se le puede asignar el valor null directamente, pero para numéricos, hemos de usar el método setNull(). Veamos un ejemplo:


Oracle: Búsquedas por fechas

A veces queremos acotar las búsquedas en función de una fecha. Por ejemplo, para hacer estadísticas quincenales, ver logs diarios, etc… Imaginemos que tenemos la siguiente tabla de Personas: ID Nombre Apellido Fecha_Alta 1 José Sánchez 06/01/13 07:01:44,226000000 2 Juan González 14/01/13 09:21:21,546000000 3 Paco Sánchez 15/01/13 17:03:04,321000000 4 Indiana Jones 22/01/13 22:04:16,111000000 Si quisiéramos buscar aquellos usuarios que se han registrado en la primera quincena de Enero, haríamos lo siguiente:

Lo que devolvería esta consulta serían los registros correspondiente desde ID = ‘1’ hasta ID = ‘3’.


Oracle: Búsquedas obteniendo sólo el primer registro (ROWNUM)

Es normal que a veces queramos encontrar tan sólo el primer registro que cumpla una serie de condiciones, en lugar de tener que esperar a que revise la tabla entera. Imaginemos que tenemos la siguiente tabla de Personas: ID Nombre Apellido Fecha_Alta 1 José Sánchez 06/01/13 07:01:44,226000000 2 Juan González 14/01/13 09:21:21,546000000 3 Paco Sánchez 15/01/13 17:03:04,321000000 En Oracle, esto se hace con ROWNUM, de la siguiente forma:

Lo que devolvería esta consulta sería el registro correspondiente al ID = ‘1’, aunque el ID = ‘3’ también coincida con la búsqueda, lo limitamos tan sólo al primer registro que […]