sábado, 24 de noviembre de 2012

ejemplo SQL


Ejemplo 1: Los datos están en un fichero con posicionamiento por columnas

Los datos que queremos introducir están en el fichero p1.dat que tiene las cuatro filas que aparecen bajo la línea de guiones, indicando sobre ella el número de columna:

  1   5    0    5    0  
  123456789012345678901234
  ------------------------
  101 fila 1     50 980423
  102 fila 2     51 980424
  103            52 980425
  104 fila 4        980426
El fichero de control que usamos es p1.ctl:

  load data
  infile 'p1.dat'
  into table p1
  (cd   position(1:3)   char,
   nme  position(5:14)  char,
   sal  position(15:17) integer external,
   dia  position(19:24) date 'YYMMDD')
Ejecutamos el SQL*Loader (la extensión por defecto del fichero de control es .ctl):

  $ sqlldr  usuario  control=p1
Si el codigo de usuario es nombre.apellido utilizamos lo siguiente (en general los ejemplos consideran un código de usuario sin caracteres extraños):

  $ sqlldr   \'\"nombre.apellido\"\'  control=p1
Debemos comprobar siempre el resultado de la carga visualizando el fichero de registro de la sesión, que aquí es p1.log.

Comprobamos el efecto de la carga. Para ello realizando una llamada desde el operativo a SQL*Plus y ejecutamos una consulta sobre la tabla que hemos cargado.

El fichero p1.sql contiene:
  SELECT *
  FROM   p1;
  exit
Llamamos a sqlplus y ejecutamos el fichero p1.sql:
  $ sqlplus usuario @p1
Y obtenemos:
  Conectado a:
  Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production

  CD  NME            SAL DIA
  --- ---------- ------- --------
  101 fila 1          50 23/04/98
  102 fila 2          51 24/04/98
  103                 52 25/04/98
  104 fila 4             26/04/98

  4 filas seleccionadas.

  Desconectado de Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
Posteriormente podemos comprobar si se han introducido correctamente los valores nulos:
  SQL> SELECT *
       FROM   p1
       WHERE  nme IS NULL;

  CD  NME            SAL DIA
  --- ---------- ------- --------
  103                 52 25/04/98


  SQL> SELECT *
       FROM   p1
       WHERE  sal IS NULL;

  CD  NME            SAL DIA
  --- ---------- ------- --------
  104 fila 4             26/04/98

No hay comentarios:

Publicar un comentario