Het gebruik van externe tabellen en files - 10g
Om externe files vanuit de Oracle database te kunnen benaderen, moet je eerste het create directory commando gebruiken om een directory object te definiƫren die naar de extrene file locatie wijst. Gebruikers die de externe files willen gebruiken, moeten read rechten hebben op deze directory.


Let Op:

Voor je van start gaat, moet je eerst controleren of de externe directory bestaat en dat de gebruiker die het commando uitvoerd het create any directory privilege heeft.

Het volgende voorbeeld creƫert een directory met de naam voorbeeld_dir en geeft lees en schrijf rechten aan de gebruiker scott

 

SQL> create directory voorbeeld_dir as 'c:\temp\';

Directory created.

SQL> grant read on directory voorbeeld_dir to scott;

Grant succeeded.

SQL> grant write on directory voorbeeld_dir to scott;

Grant succeeded.


connect als scott en voer het voorbeeld script uit:
SQL> connect scott/tiger
Connected.
SQL> set pages 0 newpage 0 feedback off
SQL> select deptno||'~'||dbname||'~'||loc||'~'
2 from dept
3 order by loc;
select deptno||'~'||dname||'~'||loc||'~'


40~OPERATIONS~BOSTON~
30~SALES~CHICAGO~
20~RESEARCH~DALLAS~
10~ACCOUNTING~NEW YORK~

SQL> spool c:\temp\dept.lst
SQL> /

40~OPERATIONS~BOSTON~
30~SALES~CHICAGO~
20~RESEARCH~DALLAS~
10~ACCOUNTING~NEW YORK~

SQL> spool off
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options


Kijk op de server of het bestand is aangemaakt:
C:\Documents and Settings\Michael>cd \temp

C:\TEMP>dir
De volumenaam van station C is pietje
Het volumenummer is 2629-16F0

Map van C:\TEMP

06-06-2007 13:06 <DIR> .
06-06-2007 13:06 <DIR> ..
25-03-2008 08:06 352 dept.lst
5 bestand(en) 182.239 bytes
2 map(pen) 9.972.236.288 bytes beschikbaar

C:\TEMP>


En zie, er is een file dept.lst aangemaakt.
Nu we de data op het os hebben, kunnen we de externe tabel maken, hier een voorbeeld van een tabel gebasseerd op de dept.lst zoals we net hebben aan gemaakt:


SQL>set feedback on heading on newpage 1 pages 60

create table dept_ext
(DEPTNO NOT NULL NUMBER(2),
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
)
organization external
(type ORACLE_LOADER
default directory voorbeeld_dir
access parameters (records delimited by newline
fileds terminated by "~"
( DEPTNO number(2),
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
))
location ('dept.lst'));

table created.

SQL> desc dept_ext;
Name Null? Type
----------------------------------------- -------- --------------

DEPTNO NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)


De externe tabel is nu geschikt om bijvoorbeeld met SQL*Loader te worden geleegd/gevuld

 

 

 

Advertentie

>

Poll

Voorkeur
 

Wie is er aanwezig

We hebben 303 gasten online