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;

No hay comentarios:

Publicar un comentario