External Table Nedir,Okuma Yazma Islemleri

External Table nedir, okuma yazma işlemleri..

Oracle üzerinde tutulmayan dış ortamdan okunarak veri sorgulama, sıralama yapabileceğimiz tablo türüdür.(Excel,xml,csv dosyaları gibi). External table üzerinde index oluşturulamaz, DML işlemleri yapılamaz.(read only)

Sistemdeki mevcut external tabloları sorgulamak için aşağıdaki viewleri kullanabilirsiniz.

USER_EXTERNAL_TABLES   (Bağlı kullanıcının sahibi olduğu tüm ext.tablolar)
ALL_EXTERNAL_TABLES     (Bağlı kullanıcının yetkisi olduğu tüm ext.tablolar)
DBA_EXTERNAL_TABLES    (Databasedeki tüm ext tablolar,DBA rolüne sahip user çalıştırabilir.)

External Table Okumak.

External tablodan okuyabilmek için external  tablo mevcut bir oracle directoryde olmalı ya da yeni bir directory yaratıp orayı tanıtmalıyız oracle’a.

-Yeni Directory oluşturuyuroz.

 CREATE OR REPLACE DIRECTORY hr_dir  AS ‘C:\csvdosyalarim’;

-Directory’i kullanacak usera yetki veriyoruz.

GRANT READ,WRITE ON DIRECTORY hr_dir  TO HR;

-External Tablomuzu yaratıyoruz.

CREATE TABLE ext_table_read (
emp_no      NUMBER,
emp_name    VARCHAR2(50),
emp_surname VARCHAR2(50) )
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY hr_dir
ACCESS PARAMETERS(
FIELDS TERMINATED BY ‘;’
MISSING FIELD VALUES ARE NULL
(emp_no, emp_name, emp_surname)
)
LOCATION ('emp_file.csv')
)
PARALLEL REJECT LIMIT UNLIMITED;

FIELDS TERMINATED BY  ‘;’  karakterlerin arasında ayırac olarak  ;  kullanıldığını gösterir.
Emp_file.csv dosyamızı açarak aşağıdaki kayıtları ekleyelim,ayıraç karakteri  (;)  kullanmamız önemli.

1;Ali;ADALI
2;Cemal;ULUSOY
3;Ömer;ACAR

Csv dosyamızı kaydedip çıktıktan sonra tabloyu sorgulayarak kayıtlarımıza sql üzerinden ulaşabilmemiz gerekiyor.

Select * from ext_table_read;

ORACLE_DATAPUMP İle External Table Yaratmak.

Veritabanında tutulan bilgileri dış dosyaya(external tabloya) yazdırmamız gerekebilir, bu durumda oracle data pump kullanıyoruz.

CREATE TABLE ext_table_write(
table_name, tablespace_name)
ORGANIZATION EXTERNAL(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY hr_dir
LOCATION ('hr_employees.exp’)
)
PARALLEL AS
SELECT employee_id,first_name,last_name
FROM hr.employees;

Oluşan external tablomuzu sorguluyor olabilmemiz gerekiyor.

select * from ext_table_write

ihtiyaç olursa İki farklı dosyaya yazdırabilirsiniz.Bunun için create table komutunu aşağıdaki gibi değiştirebilirsiniz.

LOCATION('hr_employees.exp1','hr_employees.exp2')

Tagged: , , , , , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir