Oracle Spatial de la A a la Z - Unidad 6

901 views

Published on

by Jorge Ulises Gonzalez Medina

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
901
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
84
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Oracle Spatial de la A a la Z - Unidad 6

  1. 1. 6 Cargando información espacial OBJETIVOS •Identificar los métodos para la carga de datos espaciales •Crear los archivos de control asociados con la carga de los datos espaciales mediante SQL * Loader •Utilizar la herramienta de conversión para cargar un Shapefile Environmental Systems Research Institute (ESRI) shapefile en Oracle formato espacial Existen varios métodos para cargar datos en las tablas de una base de datos Oracle. SQL*Loader SQL*Loader carga datos procedentes de archivos externos en las tablas de una base de datos Oracle. Tiene un potente sistema de análisis que prácticamente no limita el formato de los datos del archivo de datos. Carga Directa Las inserciones de Carga Directa se pueden utilizar para copiar datos de una tabla a otra dentro de la misma base de datos. Esto acelera la operación de inserción al ignorar la caché de buffers de base de datos y escribir los datos directamente en los archivos de datos. 1 MÉTODOS DE CARGA DE DATOS
  2. 2. 2 SQL*LOADER SQL*Loader carga datos procedentes de archivos externos en las tablas de una base de datos Oracle. SQL*Loader tiene las siguientes características: • SQL*Loader puede utilizar uno o más archivos de entrada. • Se pueden combinar varios registros de entrada en un único registro lógico para la carga. • Los campos de entrada pueden ser de longitud fija o variable. • Los datos de entrada pueden tener cualquier formato: carácter, binario, decimal empaquetado, de fecha y decimal no empaquetado. • Los datos se pueden cargar desde distintos soportes físicos como, por ejemplo, discos, cintas o canales denominados. • Los datos se pueden cargar en varias tablas a la vez. • Existen opciones para realizar sustituciones o agregaciones en los datos existentes de las tablas. 3 ARCHIVOS UTILIZADOS POR SQL*LOADER •Se pueden aplicar funciones SQL a los datos de entrada antes de almacenar la fila en la base de datos. •Se pueden generar automáticamente valores de columna basándose en ciertas reglas. •Por ejemplo, se puede generar un valor clave secuencial y almacenarlo en una olumna. •Los datos se pueden cargar directamente en la tabla ignorando la caché de buffers de la base de datos.
  3. 3. SQL*Loader utiliza los siguientes archivos: • Archivo de control del cargador: Especifica el formato de entrada, las tablas de salida y las condiciones opcionales que se pueden utilizar para cargar sólo parte de los registros que se encuentran en los archivos de datos de entrada • Archivos de datos de entrada: Contienen los datos en el formato definido en el archivo de control • Archivo de parámetros: Es un archivo opcional que se puede utilizar para definir los parámetros de línea de comandos para la carga • Archivo log: Lo crea SQL*Loader y contiene un registro de la carga • Archivo de errores: Sirve para que la utilidad escriba los registros que se rechazan durante la carga. (Esto se puede producir durante la validación de los registros de entrada que realiza la utilidad o durante la inserción de registros que realiza Oracle Server.) • Archivo de desechos: Es un archivo que se puede crear, si es necesario, para almacenar todos los registros que no cumplen los criterios de selección 4 USO DE SQL*LOADER
  4. 4. Línea de comandos Al llamar a SQL*Loader, se pueden especificar parámetros que establezcan las características de la sesión. Los parámetros se pueden introducir en cualquier orden y se pueden separar por comas. Puede especificar valores para los parámetros o, en algunos casos, puede aceptar los valores por defecto sin introducir ningún valor. Si llama a SQL*Loader sin especificar ningún parámetro, SQL*Loader mostrará una pantalla de ayuda que enumera los parámetros disponibles y sus valores por defecto. 5 ARCHIVO DE CONTROL DE SQL*LOADER El archivo de control de SQL*Loader es un archivo de texto que contiene instrucciones DDL (Lenguaje de Definición de Datos). Las instrucciones DDL se utilizan para controlar los siguientes aspectos de una sesión SQL*Loader: • Dónde encuentra SQL*Loader los datos de carga • Cómo espera SQL*Loader que se formateen los datos • Cómo se configura SQL*Loader (gestión de memoria, rechazo de registros, gestión de carga interrumpida, etc.) al cargar los datos • Cómo manipula SQL*Loader los datos que se cargan Aunque no están definidas con precisión, se puede decir que un archivo de control del cargador tiene tres secciones: • La primera sección contiene información de toda la sesión, por ejemplo: - Opciones globales como, por ejemplo, tamaño de enlace, filas, registros que se ignoran, etc. - Cláusulas INFILE para especificar dónde se encuentran los datos de entrada -Cómo se cargan los datos • La segunda sección consta de uno o más bloques INTO TABLE. Cada uno de estos bloques contiene información acerca de la tabla en la que se cargan los datos, como, por ejemplo, el nombre de la tabla y las columnas de la tabla. • La tercera sección es opcional y, si existe, contiene datos de entrada. En el siguiente ejemplo se muestra un archivo de control de SQL*Loader típico.
  5. 5. 1 -- Esto es un archivo de control de ejemplo 2 LOAD DATA 3 INFILE ’SAMPLE.DAT’ 4 BADFILE ’sample.bad’ 5 DISCARDFILE ’sample.dsc’ 6 APPEND 7 INTO TABLE emp 8 WHEN (57) = ’.’ 9 TRAILING NULLCOLS 10 (hiredate SYSDATE, deptno POSITION(1:2) INTEGER EXTERNAL(3) NULLIF deptno=BLANKS, job POSITION(7:14) CHAR TERMINATED BY WHITESPACE NULLIF job=BLANKS "UPPER(:job)", mgr POSITION(28:31) INTEGER EXTERNAL TERMINATED BY WHITESPACE, NULLIF mgr=BLANKS, ename POSITION(34:41) CHAR TERMINATED BY WHITESPACE "UPPER(:ename)", empno POSITION(45) INTEGER EXTERNAL TERMINATED BY WHITESPACE, sal POSITION(51) CHAR TERMINATED BY WHITESPACE "TO_NUMBER(:sal,’$99,999.99’)", comm INTEGER EXTERNAL ENCLOSED BY ’(’ AND ’%’ ":comm * 100“) Explicación del archivo de control de ejemplo 1. Así es cómo se introducen comentarios en un archivo de control. Los comentarios pueden aparecer en cualquier parte de la sección de comandos del archivo, aunque no deben aparecer dentro de los datos. 2. La sentencia LOAD DATA le dice a SQL*Loader que es el inicio de una nueva carga de datos. Si tuviera que continuar realizando una carga que se hubiese interrumpido mientras estaba en curso, tendría que utilizar la sentencia CONTINUE LOAD DATA. 3. La palabra clave INFILE especifica el nombre de un archivo de datos que contiene los datos que desea cargar. 4. La palabra clave BADFILE especifica el nombre de un archivo en el que se colocan los registros rechazados. 5. La palabra clave DISCARDFILE especifica el nombre de un archivo en el que se colocan los registros desechados. 6. La palabra clave APPEND es una de las opciones que puede utilizar al cargar datos en una tabla que no está vacía. Para cargar datos en una tabla que está vacía, utilice la palabra clave INSERT. 7. La palabra clave INTO TABLE permite identificar tablas, campos y tipos de dato. Define la relación entre los registros del archivo de datos y las tablas de la base de datos.
  6. 6. 8. La cláusula WHEN especifica una o más condiciones de campo que debe cumplir cada registro para que SQL*Loader cargue los datos. En este ejemplo, SQL*Loader sólo cargará el registro si el carácter número 57 es una coma decimal. Esta coma decimal delimita los dólares y los céntimos en el campo y produce el rechazo de los registros si SAL no tiene ningún valor. 9. La cláusula TRAILING NULLCOLS le dice a SQL*Loader que trate las columnas de posición relativa que no están presentes en el registro como columnas nulas. 10. El resto del archivo de control contiene la lista de campos, que proporciona información acerca de los formatos de columna de la tabla que se está cargando. Consideraciones de la Sintaxis del Archivo de Control • La sintaxis tiene formato libre. (Las sentencias pueden ocupar varias líneas.) • No es sensible a mayúsculas/minúsculas, aunque las cadenas entre comillas simples o dobles se toman de forma literal, incluidas mayúsculas y minúsculas. • En la sintaxis del archivo de control, los comentarios abarcan desde los dos guiones (- ) que marcan el inicio del comentario hasta el final de la línea. La tercera sección opcional del archivo de control se interpreta como datos en lugar de como sintaxis del archivo de control; por lo tanto, no se permite el uso de comentarios en esta sección. • La palabra clave CONSTANT tiene un significado especial en SQL*Loader y, por tanto, está reservada. Para evitar posibles conflictos, no utilice la palabra CONSTANT como nombre de tabla o columna. 6 MÉTODOS DE CARGA SQL*Loader incluye dos métodos para cargar datos: • Ruta de acceso convencional • Ruta de acceso directa Carga por rutas de acceso convencionales La carga por rutas de acceso convencionales construye una matriz de filas que se van a insertar y utiliza la sentencia SQL INSERT para cargar los datos. Durante las cargas por rutas de acceso convencionales, se analizan los registros de entrada basándose en especificaciones de campo y se crea una matriz de registros que se inserta en la tabla especificada del archivo de control. Los registros que no cumplen las especificaciones de campo se rechazan y aquellos registros que no satisfacen los criterios de selección se desechan. Las cargas por rutas de acceso convencionales se pueden utilizar para cargar datos tanto en tablas agrupadas como no agrupadas. La generación de redo se controla mediante el atributo de registro para la tabla que se está cargando.
  7. 7. Carga por rutas de acceso directas La carga por rutas de acceso directas crea bloques de datos en memoria y los guarda directamente en las extensiones asignadas para la tabla que se está cargando. No se generan entradas de redo log online a menos que la base de datos esté en modo ARCHIVELOG. Las cargas por rutas de acceso directas utilizan las especificaciones de campo para crear bloques de datos Oracle completos y escribir los bloques directamente en archivos de datos Oracle. La carga por rutas de acceso directas ignora la caché de buffers de base de datos y sólo accede a la SGA para gestionar las extensiones y ajustar el límite superior. La carga por rutas de acceso directas suele ser más rápida que la carga de ruta de acceso convencional, pero no se puede utilizar en todas las situaciones. La siguiente sección compara la carga por rutas de acceso convencionales con la carga por rutas de acceso directas y proporciona ejemplos en los que se puede utilizar cada una de ellas. Nota: El archivo de comandos catldr.sql, incluido en Oracle, crea vistas que utiliza la carga por rutas de acceso directas. Se llama automáticamente cuando se ejecuta el archivo de comandos catalog.sql.
  8. 8. 7 SQL*LOADER CONTROL Y DATA FILE 8 CARGANDO LÍNEAS Y POLÍGONOS

×