Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Tablas externas en Oracle

Estas en el tema de Tablas externas en Oracle en el foro de Oracle en Foros del Web. Buenas gente, Tengo una duda acerca de trabajar con tablas externas en ORACLE. He creado una serie de tablas externas de datos que ya estan ...
  #1 (permalink)  
Antiguo 29/04/2011, 06:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 174
Antigüedad: 18 años, 3 meses
Puntos: 2
Tablas externas en Oracle

Buenas gente,

Tengo una duda acerca de trabajar con tablas externas en ORACLE. He creado una serie de tablas externas de datos que ya estan descatalogados y que ya practicamente no se consultan, para de esta manera liberar espacio en los datafiles de la base de datos. Se ha seguido la siguiente sentencia:

CREATE TABLE ADMIN.ext_tabla_auditada_1
ORGANIZATION EXTERNAL
(TYPE oracle_datapump
DEFAULT DIRECTORY texternal_data
LOCATION ('tabla_auditada_1.txt'))
PARALLEL
AS SELECT * FROM admin.tabla_auditada_1
WHERE anyo = 2009;

Y correctamente me ha creado ficheros con datos de la consulta cuya condicion es que solo me almacene los registros de dicha tabla que cumplan que el año sea 2009.

Ahora la duda es...Si quiero agregar mas registros a la tabla externa ya creada anteriormente, sin crear una nueva, ¿se puede concatenar los datos, por ejemplo, sobre la misna consulta pero con la condicion de que el ano sea 2010? Y si se puede, como seria la sintaxis?

Muchas gracias
  #2 (permalink)  
Antiguo 29/04/2011, 07:27
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Tablas externas en Oracle

Si no estoy mal, una tabla externa aunque sea leída desde un archivo se comporta como una tabla del sistema.

Si haces un:

Código SQL:
Ver original
  1. INSERT INTO ADMIN.ext_tabla_auditada_1 SELECT * FROM admin.tabla_auditada_1
  2. WHERE anyo = 2010;

Esto te actualizará la tabla externa sin necesidad de volverla a crear
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 29/04/2011, 08:02
 
Fecha de Ingreso: agosto-2006
Mensajes: 174
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Tablas externas en Oracle

Muchas gracias!!!

Hare una pruebita con eso...a ver si funca o no funca!!!

Gracias de nuevo!!!
  #4 (permalink)  
Antiguo 02/05/2011, 01:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 174
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Tablas externas en Oracle

Buenas,

Gracias por la respuesta, he hecho la siguiente prueba para comprobar:

create table admin.t_externa
(
id number not null,
descripcion varchar2(20)
)

insert into admin.t_externa values (1, 'A');
insert into admin.t_externa values (2, 'B');
insert into admin.t_externa values (3, 'C');
insert into admin.t_externa values (4, 'D');
insert into admin.t_externa values (5, 'E');
insert into admin.t_externa values (6, 'F');

CREATE TABLE ADMIN.ext_t_externa
ORGANIZATION EXTERNAL
(TYPE oracle_datapump
DEFAULT DIRECTORY texternal_data
LOCATION ('t_externa.txt'))
PARALLEL
AS SELECT * FROM admin.t_externa
where id in (1,2,3);

Hasta aqui todo bien. He verificado la tabla externa creada con los tres registros. El problema me da a la hora de hacer:

INSERT INTO ADMIN.ext_t_externa (id, descripcion) SELECT * FROM admin.t_externa where id in (4,5,6);

Que da el error: "ORA-30657: operación no soportada en la tabla externa organizada"
  #5 (permalink)  
Antiguo 02/05/2011, 07:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Tablas externas en Oracle

Este manual muestra detalladamente la forma como lo debes hacer
http://www.plsql.biz/2006/09/tablas-externas.html
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 04/05/2011, 02:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 174
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Tablas externas en Oracle

Buenas,

Gracias por la respuesta, y la verdad que esa pagina fue una de las que encontre cuando empece a investigar esta opcion de Oracle con las talbas externas. Aqui te explica como hacer una carga desde una tabla externa a una tabla de Oracle, pero no lo viceversa, es decir, yo quiero, cargar mas datos en una tabla externa ya creada desde Oracle.

No se si hay manera de hacer esa operacion, ya que lo intente con los pasos que hice y que lo postee en un reply anterior en este hilo, pero no ha funcionado.

Quizas no exista la posibilidad de cargar mas datos en una tabla externa ya creada, y tenga que crear una tabla externa nueva...

Saludos

Etiquetas: externas, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:42.