Primero debemos cargar el sqlplus, y entrar como usuario con Rol de DBA.
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Oct 18 22:21:20 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter user-name: sys as sysdba
Enter password:
Connected to an idle instance.
Crearemos el directorio donde se encuentran los datos
SQL>CREATE DIRECTOY ext_tab_dir AS ‘/home/oracle/sbd1/proyecto01′;
si estamos usando windows evitemos colocar rutas con espacios o nombres largos, podria quedar algo asi:
SQL>CREATE DIRECTOY ext_tab_dir AS ‘c:\proyecto01′;
Ahora otorgamos permisos de Lectura y Escritura para dicho directorio. Aquí PROY01 es el usuario que va a trabajar con los datos.
SQL>GRANT READ ON DIRECTORY ext_tab_dir TO PROY01;
SQL>GRANT WRITE ON DIRECTORY ext_tab_dir TO PROY01;
SQL>quit (para salir)
Para crear la tabla entramos como (en este caso) el usuario PROY01 al SQL*Plus.
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Oct 18 22:21:20 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter user-name: proy01
Enter password: *****
Connected to an idle instance.
SQL>
CREATE TABLE tabla_datos (
region char(21),
departamento char(16),
hospital char(36),
especialidad char(41),
unidad char(11),
servicio char(13),
sala char(5),
cama char(5),
paciente char(22),
carnet_paciente int,
cedula_p char(9),
fecha_nac date,
fecha_defu date,
sexo char(1),
dir_pac char(8),
estado_civ char(11),
responsable_paciente char(22),
colegiado int,
medico char(41),
sintoma char(51),
fecha_revi date,
observaciones char(27)
)ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_tab_dir
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
CHARACTERSET ‘WE8ISO8859P15′
SKIP 3
FIELDS LRTRIM (
region (1:21) char(21),
departamento (22:37) char(16),
hospital (38:73) char(36),
especialidad (74:114) char(41),
unidad (115:125) char(11),
servicio (126:138 ) char(13),
sala (139:143) char(5),
cama (144:148 ) char(5),
paciente (149:170) char(22),
carnet_paciente (171:186),
cedula_p (187:195) char(9),
fecha_nac (196:206) char(10) date_format DATE mask “dd/mm/yyyy”,
fecha_defu (207:217) char(10) date_format DATE mask “dd/mm/yyyy”,
sexo (218:219) char(1),
dir_pac (220:227) char(8 ),
estado_civ (228:238 ) char(11),
responsable_paciente (239:260) char(22),
colegiado (261:270),
medico (271:311) char(41),
sintoma (312:362) char(51),
fecha_revi (363:373) char(10) date_format DATE mask “dd/mm/yyyy”,
observaciones (374:400) char(27)
)
)
LOCATION ( ‘datos.txt’ )
);
Por ultimo probamos:
SQL> select * from tabla_datos;
y nos tiene que mostrar los datos que están en el archivo de datos asociado a la tabla creada.
SQL>quit
****GRACIAS A NATARENO POR LA INFO ![]()