Mostrando entradas con la etiqueta SQL Oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL Oracle. Mostrar todas las entradas

viernes, 13 de septiembre de 2013

Oracle

Oracle tiene su propio dialecto de SQL, con sus particularidades y sus funciones especiales.

Devolver resultado como una lista

Si queremos utilizar un conjunto de registros o ids para una futura operaciones de conjuntos, por ejemplo condicionar que un valor esté dentro de una lista de valores, lo normal es calcular el conjunto a comparar en una subconsulta. Pero por diversas razones puede que queramos tener esa lista preparada o poder llevarla a otra BBDD.
Select id from tabla;

Nos devuelve un conjunto de registros, cada valor es una celda en un registro nuevo.
Select wm_concat(id) from tabla;

Nos devuelve un registro con una celda cuyo valor serían los valores separados por coma: id1, id2, id3, id4. Esta instrucción depende de la versión de la BBDD Oracle.

Mensajes por consola

Comando set serveroutput on; para activar la impresión de mensajes por la consola. dbms_output.put_line('Mensaje a mostrar'); para imprimir un mensaje. Los mensajes en un bloque PL/SQL se muestran por consola una vez finalizado dicho bloque. Ejemplo:

DECLARE
     idNuevoConcepto NUMBER;

   BEGIN
   dbms_output.put_line('Comienzo ejecución');
     idNuevoConcepto := 916;
     for reg in (Select idest from estadosfinancieros 
                 where fecha >= '1/1/2008') loop
       Insert into importes_estados_financieros
         (ief_id, ief_importe, ief_ef_id, ief_idest) values
         (imp_estados_financieros_s1.nextval,
         0, idNuevoConcepto, reg.idest);
     end loop;
   dbms_output.put_line('Finalizando');
   END;