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;
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