czwartek, 21 listopada 2013

Tabele zewnętrzne (External Table) typu DATA_PUMP

Tabele zewnętrzne typu Data_Pump


Od wersji 10g istnieje możliwość szybkiego utworzenia pliku na dysku na podstawie danych z zapytania. Taki plik jest w formacie Oracle Data Pump i może być przez to narzędzie odczytywany. Plik taki możemy też przenieść do innego systemu i podpiąć go jako tabelę zewnętrzną.
Nie możemy wyrzucić danych do dowolnego katalogu na dysku, a jedynie do tych które zostały zamapowane i mamy uprawnienia do zapisu w nich. W pierwszej kolejności mapujemy więc istniejący katalog i nadajemy użytkownikowi stosowne uprawnienie (jako administrator):

create directory temp as 'c:\temp';
grant read, write on directory temp to hr;


Następnie przystępujemy do eksportu:


create table lista_plac
organization external
( type oracle_datapump
default directory temp
location ('lista_plac.dmp')
) as select last_name,first_name,salary from employees;



















Parametr default directory określa alias katalogu w którym ma się znaleźć nasz plik eksportu. Location służy do podania nazwy pliku do jakiego dane mają zostać wyeksportowane. Dane jakie mają zostać wyeksportowane są określane przez zapytanie na końcu instrukcji.
Po takiej tabeli możemy wywoływać select'y jak po każdej innej:





















nie możemy jednak niestety aktualizować danych w takiej tabeli. Pozostanie ona tylko do odczytu.
Plik taki możemy za to przenieść do innego systemu i podpiąć go pod inną bazę.
Po stronie drugiej bazy musimy zamapować katalog w którym plik z danymi się znajdzie, oraz nadać do niego odpowiednie uprawnienia:


create directory dane as 'c:\temp\imporciki';
grant read,write on directory dane to hr;

Następnie tworzymy tabelę:


create table zarobki
(
first_name varchar2(50),
last_name varchar2(50),
salary number
)
organization external
( type oracle_datapump
default directory dane
location ('lista_plac.dmp')
) ;



















Nazwy kolumn w takiej tabeli nie mogą być przypadkowe, muszą odpowiadać nazwom pod jakimi zostały wyeksportowane. Definiujemy katalog w którym znajduje się taki plik, oraz jego nazwę. Z takiej tabeli korzystamy tak jak i wcześniej:





Brak komentarzy:

Prześlij komentarz