ANEXA G
  
   
   
   Exportarea Continutului unei Tabele intr-un Fisier
   
   
   Uneori este util sa avem valorile unei coloane dintr-o tabela intr-un
   fisier text care poate fi rulat pentru a insera respectivele valori in
   tabela. De exemplu cand se distribuie sau se instaleaza un sistem se
   doreste funniza rea unui fisier care sa contina informatiile de
   start-up pentru o tabela. Asemenea fisier este furnizat odata cu
   ORACLE pentru tabelele de demonstratie Emp, Dept si Salgrade.
   
   Desi datele sunt existente in tabela, se poate dori existenta infor
   matiei in formatul "INSERT INTO nume_tabela VALUES(,,,,);" SQL din SQL
   poate fi utilizat pentru a indeplini aceasta. Urmatorul cod realizeaza
   blocul INSERT pentru tabela DEPT.



        set feed off
        set head off
        set pages 0
        set lines 75
        set verify off

        spool insert.sql

        select 'insert into dept', '     values (' ||
                deptno || ',' ||
                ''''||dname||''''||','||
                ''''||loc||''''||');'
        from dept;

        spool off

        set feed on
        set head on
        set pages 24
        set verify on

start insert.sql



   
   
   Pentru fiecare linie din tabela DEPT, codul de mai sus genereaza
   blocurile INSERT de mai jos :


insert into dept
        values (10,'ACCOUNTING','NEW YORK');

insert into dept
        values (20,'RESEARCH','DALLAS');
insert into dept
        values (30,'SALES','CHICAGO');
insert into dept
        values (40,'OPERATIONS','BOSTON');

   
   
   Aceste blocuri au fost "capturate" in fisierul "INSERT.SQL".
   
   
   Poate ca ati observat numarul mare de apostrofuri din ultimul exemplu.
   Un set de 4 apostrofuri genereaza un singur apostrof in blocul final -
   RETINETI : Sirurile de caractere trebuie incadrate de apostrofuri !


        Astfel :

        SELECT '''X'''            intoarce 'X'
        SELECT ''''               intoarce '
        SELECT ''''||DNAME||''''  intoarce 'BOSTON'



   
   
   SQL din SQL este o tehnica ce poate fi utilizata pentru a mari
   tabelele cu valori stocate in fisiere text. De asemeni pot fi folosite
   utilitarele IMPORT/EXPORT.
   
   Generarea unor blocuri INSERT pentru o tabela cu multe coloane este
   costisitor sa generam coloana cu coloana. In loc, putem extrage
   informatia din "Data Dictionary".
   
   
   Intr-adevar, cand se genereaza SQL bazat pe date existente, "Data
   Dictionary" este locul de start. Se poate utiliza acest dictionar
   pentru a furniza parametrii pentru orice bloc SQL. Urmatorul exeplu
   utilizeaza infor- matia din "Data Dictionary" pentru a genera blocuri
   CREATE TABLE pentru fiecare tabela a utilizatorului. Acest exemplu
   ilustreaza cateva tehnici necesare pentru generarea unui SQL complex.
   SA NU VA INGRIJORATI CA VA TREBUI SA UTILI- ZATI ACEST COD DE FIECARE
   DATA CAND DORITI SA EXECUTATI UN BACK-UP AL TABE- LELOR DUMDEAVOASTRA
   ! ORACLE FURNIZEAZA ALTE UTILITARE CARE EXECUTA ACEST LUCRU.
   
   
   
    Crearea Tabelelor.
    
   
   
   Este mereu o idee buna sa fiti capabili sa regenerati propriile
   tabele. Puteti sa lasati SQL sa genereze blocuri CREATE TABLE pentru
   aceasta. Ecranul "Data Dictionary" - user_tab_columns - contine tiate
   informatiile necesare.

        SELECT TABLE_NAME, COLUMN_ID, COLUMN_NAME, DATA_TYPE, DATA_LENGHT,
        DATA_PRECISION, DATA_SCALE, NULLABLE
        FROM USER_TAB_COLUMNS
        WHERE TABLE_NAME IN ('DEPT','EMP','SALGRADE')
        ORDER BY TABLE_NAME, COLUMN_ID;


TABLE_NAME COLUMN_ID COLUMN_NAME DATA_T DATA_LEN DATA_PREC DATA_SCALE NULLABLE
---------- --------- ----------- ------ -------- --------- ---------- --------
DEPT            1       DEPTNO   NUMBER      22         2       0       N
DEPT            2       DNAME    CHAR        14                         Y
DEPT            3       LOC      CHAR        13                         Y
EMP             1       EMPNO    NUMBER      22         4       0       N
EMP             2       ENAME    CHAR        10                         Y
EMP             3       JOB      CHAR         9                         Y
EMP             4       MGR      NUMBER      22         4       0       Y
EMP             5       HIREDATE DATE         7                         Y
EMP             6       SAL      NUMBER      22         7       2       Y
EMP             7       COMM     NUMBER      22         7       2       Y
EMP             8       DEPTNO   NUMBER      22         2       0       N
SALGRADE        1       GRADE    NUMBER      22                         Y
SALGRADE        2       LOSAL    NUMBER      22                         Y
SALGRADE        3       HISAL    NUMBER      22                         Y

Inapoi la cuprins.

BogSoft 1999