Metadate Oracle

[Versiunea articolului din limba rusă poate fi găsită aici].

  • DDL - limbaj de definiție a datelor - limbajul de definiție a datelor;
  • DML - limbajul de manipulare a datelor - limba de manipulare a datelor.

Limbajul DML este necesar pentru a modifica conținutul tabelelor. Operatorii săi sunt toți cunoscuți inserați, actualizați, ștergeți. Pentru a face modificările să fie vizibile tuturor utilizatorilor bazei de date, operatorul necesare pentru a efectua comitere, sau pentru a reveni la starea anterioară (încă mai vorbesc cu rollback modificările) - rollback operatorului.







În versiunile anterioare ale Oracle, metadatele ar putea fi preluate utilizând interogări SQL și diverse utilitare pentru export. Aceste metode au limitări și dezavantaje. Răspunsul la toate aceste inconveniente a fost pachetul DBMS_METADATA cu un set de funcții pentru lucrul cu metadatele. Pachetul DBMS_METADATA a apărut în versiunea Oracle9i. Acum, definițiile datelor sunt disponibile atât în ​​format XML, cât și sub forma expresiilor DDL obișnuite.

Funcția principală de care avem nevoie pentru extragerea metadatelor este get_ddl. Pentru că poate fi ca având două (tip de obiect, numele obiectului), există trei (în plus, de asemenea, numele schemei) setările. De exemplu, pentru a obține TRIGGER1 metadate de declanșare a sistemului de SCHEMA1 ai putea folosi acest lucru:







Dacă utilizatorul lucrează cu schema proprie, al treilea parametru poate fi omis. Disponibile tipuri de obiecte sunt evidente - PROCEDURA, TABLE, constrîngere, INDEX, PACHET, și așa mai departe.

Opriți, dar ce este dublu? Masa duală este o masă auxiliară Oracle. Se compune dintr-o singură coloană numită și DUMMY o singură intrare - „X“ (încercați „selectați * de la dublu“). Proprietarul acestei tabele este SYS, dar orice utilizator al bazei de date poate accesa aceasta. Când executați selectați de deasupra tabelului cu două constante, suntem garantați că obținem exact o intrare. Este cu siguranță posibil să editați manual masa dublă, dar pentru a face acest lucru eu nu sfătuiesc.

Pentru a primi metadatele unui obiect, trebuie, desigur, să-i cunoașteți numele. Lista obiectelor din schema curentă poate fi obținută, de exemplu, după cum urmează:

Acestea sunt interogări pentru tabele, coloane și, respectiv, indexuri.

Datele pentru alte obiecte baze de date sunt în următoarele tabele:

  • USER_VIEWS - date despre vizualizări (sau așa cum sunt numite afectiv - vederi);
  • USER_CONSTRAINTS - datele privind cheile primare și secundare și verificările de tipul nu sunt nulă;
  • USER_SEQUENCES - date despre secvențe-generatoare;
  • USER_TRIGGERS - date despre declanșatoare;
  • USER_SOURCE - date despre obiectele PL / SQL, cum ar fi proceduri, funcții, pachete.

Ei bine, asta-i totul: metadatele sunt în mâinile noastre. Folosiți-le pentru nevoile dvs. Mult noroc.







Articole similare

Trimiteți-le prietenilor: