Oracle Lessons

Oracle Tabelle Esterne Lezione 2


  Creazione di una tabella esterna. Ora che i dati esterni sono disponibili e accessibili, è possibile creare la struttura di una tabella in grado di accedervi. Per crearla si dovrà utilizzare la clausola organization external del comando create table, nel quale è possibile specificare la struttura dei dati come si farebbe per un control file di SQL*Loader.Il listato successivo mostra la creazione della tabella BIBLIOTECA_EXT, che si basa sui dati contenuti nel file di spool bookshelf.lst creato nel paragrafo precedente: set feedback on heading on newpage 1 pagesize 60 create table BIBLIOTECA_EXT(Titolo varchar2(100),Editore varchar2(20),NomeCategoria varchar2(20),Classificazione varchar2(2))organization external(type ORACLE_LOADERDefault directory LIBRO_DIRAccess parameters (record delimited by newline fields terminated by “;”(Titolo char(100),Editore char(20),NomeCategoria char(20),Classificazione char(2)))Location (‘bookshelf_dump.lst’)); Oracle risponderà: Table create.  Analogamente sarà possibile creare anche l’altra tabella basata sul file di spool book_auth_dump.lst: create table BIBLIOTECA_AUTORE_EXT(Titolo varchar2(100),NomeAutore varchar2(50))organization external(type ORACLE_LOADERDefault directory LIBRO_DIRAccess parameters (record delimited by newline fields terminated by “;”(Titolo char(100),NomeAutore char(50),))Location (‘book_auth_dump.lst’)) NOTA: Quando si crea una tabella esterna Oracle eseguirà solamente delle convalide commarie. La maggior parte degli errori non sarà visibile fino a quando non si cercherà di interrogare la tabella. La sintassi per i parametri di accesso è molto specifica e degli errori anche non gravi nella definizione dell’accesso, compreso l’ordine delle clausole, potrebbe impedire l’accesso a tutte le righe. E’ possibile verificare il contenuto delle tabelle esterne eseguendo una query partendo dalle medesime e confrontandole con le tabelle di origine. La query in questione è una normale select: select Titolo from BIBLIOTECA_EXT where NomeCategoria = ‘…..’; Le tabelle esterne possono essere utilizzate alla stessa stregua di una tabella normale nelle interrogazioni (comandi di select), quindi anche in join. Sulle tabelle esterne è possibile costruire view, ed eseguire funzioni sulle colonne della tabella. Vengono censite sul dizionario di dati di sistema denominato:USER_EXTERNAL_TABLES.Per visualizzare il nome del file esterno (o dei file) cui fa riferimento la tabella è necessario interrogare la tabella di sistema denominata:USER_EXTERNAL_LOCATION.