You are on page 1of 55

M.T.I.

Ambrosio Cardoso Jimnez

Oracle es bsicamente una herramienta cliente/servidor para la gestin de Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que slo se vea en empresas muy grandes y multinacionales, por norma general. En el desarrollo de pginas web pasa lo mismo: como es un sistema muy caro no est tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL Server, etc. La buena noticia es que a partir de la versin 10 se distribuye de forma gratuita la versin Express

En 1978 , sale la primera versin del sistema Oracle para el PDP-11 de digital Equipment, basado en la tesis de Edgar Frank Codd y se convierte en el primer RDBMS comercial. La ltima versin liberada es la 11g que sali al mercado el mes de Julio de 2009

Expresin

regular mejorada e integradas en las funciones de SQL Tipos de datos SIMPLE_INTEGER, SIMPLE_FLOAT, y SIMPLE_DOUBLE Sentencia CONTINUE Secuencias (para campos auto incrementales) en las expresiones PL/SQL SQL Dinmico Mas control sobre Triggers Triggers compuestos Perfiles jerrquicos en PL/SQL

Instancia
System Global rea (SGA) Zona compartida Cach de biblioteca Cach de DD
Bfer de redo log

Almacenamiento memoria principal

Cach de bfer

Large Pool Program Global rea Servidor CHPT Usuario

ARCH Procesos PMON SMON DBWR LGWR

Parmetros
Archivos de datos Archivos de control Archivos redo logs

Base de datos
Almacenamiento Secundario

Contraseas

Datos_01.dbf ctrl_01.ctl log_01.rdo

La instancia.

Es uno de los dos elementos de cualquier Base de Datos Oracle. Sirve para gestionar los datos de la base de datos y proporcionar servicio a los usuarios que acceden a la misma y est compuesta de: estructuras en memoria y procesos background.

Archivos en disco. Representan la Base de


Datos en s y consta de: Estructuras lgicas. Tablespaces, objetos del esquema de usuario Estructuras fsicas. Los archivos de datos almacenados en disco, los archivos de datos (asociados a los tablespaces) los archivos redo log, y los archivos de control

Una base de datos de Oracle contiene tres tipos de archivos:


Archivos de datos. Contiene los datos actuales de la base de datos as como el diccionario de datos. Archivos rehacer (redo logs). Almacenan datos recuperables en caso de error grave. Archivos de control. Necesarios para mantener la integridad de la Base de Datos. Se utilizan otros archivos de forma auxiliar Archivos de parmetros. Definen caracterstica de una instancia Oracle. Archivos de contraseas. Sirven para autenticar los usuarios. Copias de archivos rehacer. Usados para la recuperacin de datos

SGA
Est situada al inicio de los datos de la instancia y contiene los datos e informacin de control de la instancia

PGA
En ella se almacenan los datos correspondientes a un proceso, el cual incluye: reas de ordenacin. Para acelerar las tareas de ordenacin de datos. Informacin de sesin. Usuarios, privilegios, etc. Estados del cursor. Tareas SQL actualmente en ejecucin. Espacio de pila. Variables y otros datos

Large pool. Se utiliza como memoria de sesin y para realizar operaciones de respaldo. Bfer de archivo rehacer (Redo Log Buffer). Almacena los ltimos cambios realizados a los bloques de datos de la Base de Datos. Cach Bfer de la Base de Datos. Almacena los ltimos bloques de datos accedidos por los usuarios. Fondo comn compartido (Shared pool). Almacena las ltimas instrucciones SQL y PL/SQL ejecutadas, estos a su vez posee dos estructuras internas. Cach de instrucciones (Library Cach). Almacena las ltimas instrucciones SQL y PL/SQL ejecutadas. Cach de diccionario de datos. Almacena las ltimas definiciones de la Base de Datos utilizadas (tablas, ndices, privilegios, usuarios, etc.) cada vez que una instruccin utiliza un nombre de la Base de Datos (tabla, ndice u otros objetos) se comprueba en el diccionario de datos y se almacena en este cach. De este modo la siguiente vez no hace falta acceder al diccionario de datos real

En ella se almacenan los datos correspondientes a un proceso, el cual incluye: reas de ordenacin. Para acelerar las tareas de ordenacin de datos. Informacin de sesin. Usuarios, privilegios, etc. Estados del cursor. Tareas SQL actualmente en ejecucin. Espacio de pila. Variables y otros datos

Proceso de usuario. Lanzado por el usuario para pedir interaccin con la Base de Datos. Proceso de servidor. Es el enlace entre los procesos de usuarios y el servidor de Oracle. Procesos en segundo plano (background). Cada instancia de Oracle arranca una serie de procesos background. Los procesos obligatorios son: DBWR. Proceso encargado de escribir en los archivos de datos los buffers ms antiguos de la memoria, para que la base de datos vaya guardando los cambios. LGWR. Escribe los datos a los archivos rehacer (redo) desde la cach de archivos rehacer. CKPT. Actualiza todas las cabeceras de los archivos de datos para que aparezca la nueva disposicin de datos. Esto ocurre cuando se genera un punto de comprobacin.

Continuacin

SMON. Permite recuperar la instancia de la base de datos en caso de cada fatal. Cuando se reinicia de nuevo la instancia de la base de datos. PMON. Es el encargado de gestionar adecuadamente los procesos que fallan. Ante cada de procesos, PMON se encarga de restaurar los datos adecuadamente. SQL *Net Listener. Es el encargado de encaminar por una red solicitudes de un cliente a un servidor de base de datos Oracle. Este proceso escuchador (listener) est tanto en el cliente como en el servidor.

Continuacin

PSP0 (Process Spawner). Crea y gestiona otros procesos Oracle. MMAN (Memory Manager). Administra la memoria. MMON (Memory Monitor). Abre procesos esclavos. MMNL (Memory Monitor Light). Captura frecuentemente session history V$ACTIVE_SESSION_HISTORY) y calcula mtricas. Opcionalmente podemos tener: ARCH, RECO, Dispatchers (Dnnn), Shared Servers (Snnn), etc.

El parmetro BACKGROUND_DUMP_DEST, del archivo de inicializacin, define el directorio donde se guardan los archivos de depuracin de los procesos background.

La estructura lgica de la base de datos determina el uso que se hace del espacio fsico que la sustenta. Existe una jerarqua descendente en esta estructura, consistente en tablespaces, segmentos, extensiones y bloques. Una base de datos de Oracle la forman un grupo de tablespaces. Un tablespace puede contener uno o ms segmentos. Un segmento lo integran una o ms extensiones. Una extensin tendr al menos un bloque. El bloque es la unidad mnima de almacenamiento. El tamao del bloque ser mltiplo del que tenga el sistema operativo, y lo determina la variable db_block_size (2K, 4K, 8K, 16K y 32K). Cuando un segmento (tabla, ndice, rollback o temporal) crece, el espacio que se aade es de una extensin. Automatic Storage Managment (ASM). Gestor de volmenes para bases de datos Oracle. Gestiona directamente los discos. Adems distribuye automticamente los datos entre los discos, manteniendo el reparto uniforme cuando se aaden o quitan discos (incluso en caliente). Tambin se encarga de borrar los archivos que ya no forman parte de la BD

Estructura lgica de los objetos de Oracle

Encabezado de un bloque

Espacio libre

Fila de datos

Encabezado de fila Tamao del campo Valor del campo

Contenido de un bloque

Contenido de una fila

Oracle 10g

Base de datos practica

Paso 1. Crear una carpeta en C:\oraclexe\app\oracle\admin con el nombre practica dentro de la nueva carpeta (practica) crear los siguientes directorios: adump, bdump, cdump, dpdump, udump, flash_recovery_area Paso 2. Entrar a la carpeta C:\oraclexe\oradata y dentro de ella crear otra carpeta con el nombre practica Paso 3. Crear un archivo de texto en la carpeta c:\oraclexe\app\oracle\product\10.2.0\server\dbs con initpractica.ora (formato ANSI) y pegar el siguiente texto:

el

nombre

*.audit_file_dest='C:\oraclexe\app\oracle\admin\practica\adump' *.background_dump_dest='C:\oraclexe\app\oracle\admin\practica\bdump' *.compatible='10.2.0.1.0' *.control_files='C:\oraclexe\oradata\practica\control01.ctl', 'C:\oraclexe\oradata\practica\control02.ctl','C:\oraclexe\oradata\practica\control03.ctl' *.core_dump_dest='C:\oraclexe\app\oracle\admin\practica\cdump' *.db_block_size=8192 *.db_domain='midominio.cl' *.db_file_multiblock_read_count=16 *.db_name='practica' *.db_recovery_file_dest='C:\oraclexe\app\oracle\admin\practica\flash_recovery_area' *.db_recovery_file_dest_size=2147483648 *.dispatchers='(PROTOCOL=TCP) (SERVICE=practicaXDB)' *.job_queue_processes=10 *.open_cursors=300 *.pga_aggregate_target=92274688 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=277872640 *.undo_management='AUTO' *.undo_tablespace='TS_UNDO' *.user_dump_dest='C:\oraclexe\app\oracle\admin\practica\udump'

Guarde el archivo!

Paso 4. inicie el sql*plus Paso 5. connect sys/claveoracle as sysdba Paso 6. shutdown Paso 7. pegar el siguiente cdigo: startup nomount pfile=C:\oraclexe\app\oracle\product\10.2.0\server\dbs\initpractica.ora deber aparecer el siguiente mensaje: Instancia ORACLE iniciada. Total System Global Area 281018368 bytes Fixed Size 1286992 bytes Variable Size 88083632 bytes Database Buffers 188743680 bytes Redo Buffers 2904064 bytes Paso 8. Escribir la siguiente instruccin CREATE SPFILE='C:\oraclexe\app\oracle\product\10.2.0\server\dbs\spfilepractica.ora' from pfile='C:\oraclexe\app\oracle\product\10.2.0\server\dbs\initpractica.ora'

Paso 9. Crear la base de datos


CREATE DATABASE practica LOGFILE group 1 ('C:\oraclexe\oradata\practica\redolog1a.dbf', 'C:\oraclexe\oradata\practica\redolog1b.dbf' ) SIZE 10M, group 2 ('C:\oraclexe\oradata\practica\redolog2a.dbf', 'C:\oraclexe\oradata\practica\redolog2b.dbf' ) SIZE 10M, group 3 ('C:\oraclexe\oradata\practica\redolog3a.dbf', 'C:\oraclexe\oradata\practica\redolog3b.dbf' ) SIZE 10M DATAFILE 'C:\oraclexe\oradata\practica\system01.dbf' SIZE 200M CHARACTER SET WE8ISO8859P1 national character set utf8 EXTENT MANAGEMENT LOCAL sysaux datafile 'C:\oraclexe\oradata\practica\sysaux01.dbf' size 300M autoextend on next 10M maxsize unlimited undo tablespace ts_undo datafile 'C:\oraclexe\oradata\practica\undo01.dbf' size 50M default temporary tablespace ts_temp tempfile 'C:\oraclexe\oradata\practica\temp01.dbf' size 50M AUTOEXTEND ON NEXT 50M maxsize 300M; /

Espere unos minutos, al final deber aparecer el mensaje de Base de datos creada.

Paso 10 alter database mount / Paso 11 alter database open / Paso 12


ALTER DATABASE DATAFILE 'C:\oraclexe\oradata\practica\SYSTEM01.DBF' RESIZE 1000M;

Paso 13. Ejecutar las siguientes instrucciones uno por uno @C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catalog.sql ENTER @C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catproc.sql ENTER @C:\oraclexe\app\oracle\product\10.2.0\server\sqlplus\admin\pupbld.sql ENTER Paso 14. desde modo consola de windows ejecutar cmd, para caso de vista y win 7 ejecutar como administrador Paso 15. escribir la siguiente instruccin ORADIM -NEW -SID practica -INTPWD claveoracle -STARTMODE AUTO -PFILE C:\oraclexe\app\oracle\product\10.2.0\server\dbs\initpractica.ora

Paso 16. Entre a la siguiente carpeta C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN Paso 17. Edite el archivo tnsnames.ora y agregue al principio el siguiente cdigo: practica = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = practica) (SID = practica) ) ) guarde los cambios

Paso 18. Edite el archivo listener.ora y reemplaza todo el contenido por el siguiente (se asume que usa versin express (XE) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server) (PROGRAM = extproc) )

#--------------(SID_DESC = (GLOBAL_DBNAME = practica) (SID_NAME = practica) (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server) ) #---------------) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) (ADDRESS = (PROTOCOL = TCP)(HOST = boshy-PC)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (practica) guarde los cambios

Es el nombre de la mquina

Paso 19. Se puede agregar un archivo en la carpeta C:\oraclexe\app\oracle\product\10.2.0\server\database con el nombre initpractica.ora con el siguiente contenido SPFILE='C:\oraclexe\app\oracle\product\10.2.0\server\dbs/spfilePractica. ora' Paso 20. Guarde todo y reinicie su sistema (en caso de ser necesario)

ORA-12560: TNS: Error de Adaptador de protocolo


El archivo listener.ora no est configurado correctamente, el proceso no est corriendo o hay conflictos entre procesos. Vea la siguiente imagen Debe estar iniciado

Debe estar detenido

En caso de que haya conflicto (Est iniciado el XE, y no el servicio PRACTICA), entonces puede resolverlo de la siguiente manera:

1. Elija OracleServiceXE 2. En la opcin tipo inicio elija manual y detenga el servicio 3. Elija OracleServicepractica En la opcin tipo inicio elija automtico y luego seleccione iniciar

Configurar variables de entorno


En las propiedades de equipo elija variables de entorno Seleccione el botn nueva y como clave proporcione ORACLE_SID y en valor escriba practica; con esto automticamente estar apuntando a nuestra base de datos

Conectado a una instancia inactiva


Causa: El archivo initXXXX.ora (initpractica.ora) no est bien configurado Solucin: Revisar detalladamente el archivo o ejecutar: startup nomount pfile=C:\oraclexe\app\oracle\product\10.2.0\server\dbs\initpractica.ora Alter database mount / Alter database open /

1. Comprobar las variables de entorno necesarias para conectarse a la BD Se trata de las variables: $ORACLE_HOME, $ORACLE_SID, $LD_LIBRARY_PATH y $PATH. ORACLE_HOME define en qu directorio est instalado Oracle. ORACLE_SID determina con qu instancia queremos trabajar. LD_LIBRARY_PATH permite que Oracle localice las libreras compartidas que no forman parte del ncleo. PATH debe incluir el directorio con los ejecutables de Oracle, para mayor comodidad del administrador Solucin desde Windows Escribir en la consola: SET

2. Identificar los procesos que componen instancia. Los podemos identificar desde el S.O., por ejemplo, en Unix con el comando "ps -ef" que permite ver todos los procesos en ejecucin en el sistema, filtrando por el nombre de la instancia de BD > Ps ef practicaBD Tambin lo podemos hacer consultando la vista dinmica V$PROCESS (o haciendo join con V$BGPROCESS, que contiene todos los posibles procesos background), en la BD en cuestin: Desde sql plus: Connect sys/ as sysdba SELECT * from v$PROCESS WHERE background IS NOT NULL; O bien select * from v$process a, v$bgprocess b where a.ADDR=b.PADDR; Una forma ms compacta select name,description from v$process a, v$bgprocess b where a.ADDR=b.PADDR;

3. Ver el tamao de la SGA de la BD y las cachs que la componen. Hay varias vistas dinmicas de la BD que nos dan informacin sobre el tamao y la estructura de la SGA: V$SGAINFO, V$SGA_DYNAMIC_COMPONENTS, V$SGA_TARGET_ADVICE, V$SGA y V$SGASTAT. Las tres primeras son nuevas en 10g. select * from v$sgainfo; select * from v$sgastat;

4. Comprobar valores de parmetros del init relacionados con el tamao de la memoria (SGA y PGA). En Oracle 11g se puede configurar toda la memoria que Oracle necesita (SGA y PGA), con el parmetro memory_target (se puede tambin indicar un lmite mximo para el mismo con memory_max_target). Los parmetros que dimensionan la SGA (sga_target) y la PGA (pga_aggregate_target) se pueden dejar a cero o con un valor mnimo. Adems hay que definir el tamao del buffer de redo (log_buffer). Con Oracle 9i, la configuracin de la SGA era manual, y haba que asignar los parmetros de inicializacin que dimensionan cada una de sus partes: shared_pool_size, db_cache_size, large_pool_size y java_pool_size. La PGA se configuraba con pga_aggregate_target. Con Oracle 10g se introduce la configuracin automtica de la SGA, con el parmetro sga_target (adems de sga_max_size si se le quera poner una valor mximo). Por tanto, con 10g, bastara asignar sga_target, sga_max_size y log_buffer (y los dems a cero, o con un valor mnimo). La PGA se configuraba como en 9i, con pga_aggregate_target

Solucin:

show parameter memory_target; show parameter memory_max_target; show parameter log_buffer; show parameter pga_aggregate_target; show parameter sga_target; show parameter sga_max_size; show parameter shared_pool_size; show parameter db_cache_size; show parameter large_pool_size; select rpad(component,30), CURRENT_SIZE,USER_SPECIFIED_SIZE,min_size from V$SGA_DYNAMIC_COMPONENTS; select OPER_TYPE, rpad(parameter,25), INITIAL_SIZE, FINAL_SIZE from V$MEMORY_RESIZE_OPS;

5. Comprobar los archivos que componen la BD y ubicarlos en la estructura OFA SELECT file#, name FROM v$datafile; SELECT file#, name FROM v$tempfile; SELECT group#, lpad(member,50) FROM v$logfile; SELECT lpad(name,50), block_size,file_size_blks FROM v$controlfile;

6. Identificar la estructura lgica de la BD: tablespaces, segmentos, extensiones

Para ver los tablespaces select tablespace_name from dba_tablespaces order by tablespace_name; Ver archivos de datos select tablespace_name,file_name from dba_data_files order by tablespace_name, file_name; archivos tablespace temporales select tablespace_name,file_name from dba_temp_files order by tablespace_name, file_name;

Para ver cuntos segmentos hay en cada tablespace, agrupados por tipos de segmento select tablespace_name,segment_type,count(*) segmentos from dba_segments group by tablespace_name,segment_type; Para ver cuntas extensiones de cada tipo de segmento, hay en cada tablespace Select tablespace_name,segment_type,count(*) from dba_extents group by tablespace_name,segment_type;

7. Consultar informacin sobre la base de datos (v$database) y la instancia (v$instance)

select name, created, log_mode, checkpoint_change#, open_mode, platform_name, current_scn from v$database; select instance_name, host_name, version, startup_time, status, archiver, logins, database_status from v$instance;

8. Localizar el proceso servidor asociado a mi sesin (v$process y v$session). Es un servidor dedicado o compartido?

Toda sesin contra la BD tiene dos procesos asociados: cliente y servidor. En el cliente tenemos el proceso de usuario que inicia la sesin y en el servidor de base de datos tendremos el proceso que sirve las peticiones de dicha sesin; que puede ser un servidor dedicado o compartido. En las vistas V$SESSION y V$PROCESS tenemos toda la informacin relativa a sesiones y procesos, respectivamente

Solucin

select a.SERVER, a.username as dbuser, a.OSUSER, a.PROCESS as user_process, a.machine, a.terminal, a.program as user_program, b.spid as server_process, b.program as server_program from v$session a, v$process b where a.username=USER and a.PADDR=b.ADDR;

En este caso, el proceso servidor asociado a mi sesin es un servidor DEDICADO

9. Ver la informacin de la Dictionary cache, Library cache y Result Cache de la Shared Pool de la BD (v$sgastat)

select * from v$sgastat where name like 'Result%' union select * from v$sgastat where name like 'row%' union select * from v$sgastat where name like 'library%' ;

10. Ver la actividad de la Library Cache (v$librarycache) En la vista V$LIBRARYCACHE podemos ver los ratios de eficiencia de la Library Cache, en tantos por uno. El objetivo es que se aproximen los ms posible a 1, de lo contrario es posible que haya que aumentar el tamao de la Shared Pool

select namespace, pinhitratio from v$librarycache;

11. Ver las sentencias SQL que guarda la Shared-Pool (v$sqlarea)


En la vista V$SQLAREA podemos ver el contenido del rea SQL de la sharedpool, as como informacin til para el ajuste de cada una de las sentencias sql (Shared Pool consumida, n de veces que se ha ejecutado, n de veces que se ha salido de la cach, lecturas fsicas, tiempo de CPU, tiempo total incluyendo compilacin, etc).

Solucin

SELECT SQL_TEXT, PERSISTENT_MEM, EXECUTIONS, LOADS, DISK_READS, CPU_TIME, ELAPSED_TIME FROM v$sqlarea order by DISK_READS desc; SELECT tablespace_name,segment_type,count(*) FROM dba_extents group by tablespace_name,segment_type

12. Ver las tablas en una base de datos


SELECT table_name FROM DBA_TABLES; SELECT table_name, tablespace_name FROM DBA_TABLES; //--- para mostrar solo aquellas que est en el tablespace prctica SELECT table_name FROM DBA_TABLES WHERE tablespace_name=PRACTICA;

13. Aumentar el tamao de la shared pool


select * from v$sgainfo; alter system set shared_pool_size=56M; select * from v$sgainfo;

13. Comprobar el funcionamiento de la cach de redolog, como protectora del contenido de la cach de datos. Para ello iniciaremos una transaccin y provocaremos una cada de la BD, comprobando que al arrancarla de nuevo, se mantendr la integridad de la misma
Crear la tabla BORRAME del usuario boshy. Insertar una fila sin hacer commit y forzar la cada de la BD.

Arrancar de nuevo la BD y comprobar que la fila insertada no est (pues no se


hizo commit). Repetir la insercin de la fila, esta vez haciendo commit; y forzar la cada de la BD otra vez. Arrancar la BD una vez ms y comprobar que ahora la fila si est (ya que se valid la transaccin con commit).

connect / as sysdba CREATE TABLE boshy.borrame (campo1 varchar2(50)) TABLESPACE practica; INSERT INTO boshy.borrame VALUES (primer valor); Shutdown abort connect / as sysdba Startup

INSERT INTO boshy.borrame VALUES (primer valor); INSERT INTO boshy.borrame VALUES (segundo valor); Commit;
Shutdown abort connect / as sysdba SELECT * from boshy.borrame;

14. Comprobar el funcionamiento de la cach de datos, en lo que se refiere a la mejora del rendimiento cuando se repite una consulta. Por qu la segunda vez que se lanza la misma consulta tarda menos?
vaciar la cach de datos con: alter system flush buffer_cache; Activar la medicin de tiempos en sqlplus con SET TIMING ON. Lanzar la consulta SELECT COUNT(*) FROM DBA_SOURCE. Volver a lanzar la misma consulta. Comprobar que la segunda ejecucin tarda mucho menos, ya que los datos ya se cargaron en la cach de datos al lanzarla la primera vez; y por tanto se acceden directamente en memoria y

no en disco

La segunda vez, se ejecuta ms rpido. por qu?. Porque no lo vuelve a sustraer del disco, sino de la memoria

La necesidad de recuperar datos externos, es una tarea comn; generalmente los usuarios tienen informacin en Excel o simplemente en forma digital del formato que sea. Por ello, pondremos algunos ejemplos para almacenarla en una tabla de la base de datos.

En primer lugar vamos a crear un tablespace, luego una cuenta de usuario con su clave respectiva asociando el tablespace. Es importante conceder privilegios al usuario para conectarse y crear objetos.
CREATE BIGFILE TABLESPACE practica DATAFILE 'bigtbspractica.dat' SIZE 20M AUTOEXTEND ON; CREATE USER juanito PROFILE DEFAULT IDENTIFIED BY claveJuanito DEFAULT TABLESPACE practica TEMPORARY TABLESPACE ts_temp; GRANT CONNECT, DBA, resource, create table, debug any procedure, debug connect session to juanito; CREATE TABLE estdte (nocontrol varchar (10), nombres varchar (50), Primera double, segunda double, tercera double);

Crear un archivo control.ctl y gurdalo en la unidad C: load data infile 'califica.dat' APPEND INTO TABLE ESTDTE FIELDS TERMINATED BY ,' OPTIONALLY ENCLOSED BY '"' (nocontrol CHAR, nombres CHAR, Primera INTEGER EXTERNAL, Segunda INTEGER EXTERNAL, Tercera INTEGER EXTERNAL)

Crear un archivo control.ctl y gurdalo en la unidad C: Suponiendo que la informacin est en Excel

Elija guardar como, seleccione otros formatos y luego del tipo elija CSV (delimitado por comas) en la unidad C:\califica.dat

Crear un archivo control.ctl y gurdalo en la unidad C: Ahora desde la consola de Windows (ejecutar como administrador): C:\sqlldr juanito / claveJuanito control=control.ctl Entrar a sqlplus conn juanito / claveJuanito Select nombres, primera from estdte;

You might also like