Totul despre colecțiile din oracol

Colecțiile sunt prezente într-o formă sau alta în majoritatea limbajelor de programare și peste tot există o esență similară în ceea ce privește utilizarea. Anume - puteți să stocați un set de obiecte de același tip și să efectuați orice acțiuni pe tot setul sau într-un ciclu pentru a efectua același tip de acțiuni cu toate elementele setului.







În același mod, colecțiile sunt de asemenea utilizate în Oracle.

Informații generale despre colecțiile din pl / sql
  • Colectarea colecției are loc în două etape
    1. Mai întâi declarăm tipul colecției (construcțiile assoc_array_type_def, varray_type_def și nested_table_type_def vor fi date mai jos)
  • Apoi declarăm o variabilă de acest tip
  • O referință la un element de colectare are următoarea sintaxă:
  • Variabilele tipului de colectare pot lua valoarea NULL (și elementele de colectare ele însele).
  • Sunt posibile colecții multidimensionale (colecții de colecții)
  • Tipuri de colecții

    PL / SQL bloc
    pachet
    Schema nivel

    Doar cele definite la nivel de schemă

    Gamă asociativă

    De asemenea, se numește index prin tabel sau pl / sql table.
    Tipul este descris după cum urmează (assoc_array_type_def):.

    Totul despre colecțiile din oracol

    • Pentru plasarea în memorie a tabelelor mici - directoare
    • Trimitere ca parametru de colectare

    restricţii:
    Dacă modificați setările și NLS_SORT NLS_COMP în timpul sesiunii, după finalizarea unui tablou asociativ, putem obține rezultate surprinzătoare numim prima metodă, ultima, viitoare, anterioară. De asemenea, s-ar putea să aveți probleme cu transferarea unei matrice asociative ca parametru într-o altă bază de date cu diferite setări NLS_SORT și NLS_COMP

    Este o serie de elemente stocate consecutiv






    Tipul este descris după cum urmează (varay_type_def):

    • Dimensiunea este setată la creație
    • Indexate cu 1
    • Inițializată de către constructor
    • Dacă parametrii nu sunt transmiși constructorului, este returnată o colecție goală
    • Tipul de date este orice tip de date, altul decât cursorul ref
    • Știm numărul maxim de elemente
    • Accesul la elemente secvențial

    restricţii:
    Dimensiunea maximă este de 2,147,483,647 articole

    Tavă înmuiată

    Tipul este descris după cum urmează (nested_table_type_def):

    • Dimensiunea colecției se modifică dinamic
    • Poate fi într-o stare descărcată, așa cum se arată în imagine
      <
      Totul despre colecțiile din oracol
    • Inițializată de către constructor
    • Dacă parametrii nu sunt transmiși constructorului, este returnată o colecție goală
    • Tipul de date este orice tip de date, altul decât cursorul ref
    • Dacă conține o singură valoare scalară, atunci numele coloanei este Column_Value
    • Dacă parametrii nu sunt transmiși constructorului, este returnată o colecție goală
    Setați operațiile cu tabele imbricate

    Operațiile sunt posibile numai cu colecții de mese imbricate. Ambele colecții implicate în operațiune trebuie să fie de același tip.
    Rezultatul operației este, de asemenea, colecția de tabele imbricate.

    • Ștergerea șterge toate elementele. Șterge imediat memoria alocată pentru a stoca aceste articole.
    • Șterge (n) șterge elementul cu indexul n. Memoria nu se eliberează. Un element poate fi restabilit (adică unul nou) și va avea aceeași memorie ca și cea anterioară.
    • Șterge (n, m) șterge elementele cu indici în intervalul n..m
    • Dacă elementul care trebuie șters nu este în colecție, nu face nimic.
    • Trim () - elimină un element la sfârșitul colecției. Dacă nu există niciun element, aruncă o excepție de SUBSCRIPT_BEYOND_COUNT
    • Trim (n) - elimină n elemente de la sfârșitul colecției. Dacă elementele sunt mai mici decât n, o excepție este aruncată SUBSCRIPT_BEYOND_COUNT
    • Funcționează cu dimensiunea internă a colecției. Ie Dacă ultimul element a fost șters folosind funcția Ștergere, apelul Trim () va șterge elementul șters anterior.
    • Șterge imediat memoria alocată pentru a stoca aceste articole
    • Este mai bine să nu o utilizați în combinație cu Ștergeți ()
    • EXTEND adaugă un element cu o valoare nulă la sfârșitul colecției
    • EXTEND (n) adaugă n elemente cu o valoare nulă la sfârșitul colecției
    • EXTEND (n, i) adaugă n copii ale elementului cu index i la sfârșitul colecției. Dacă colecția are constrângere NOT NULL, se poate utiliza numai acest formular.
    • Dacă elementele au fost șterse anterior utilizând metoda Ștergere, extensia nu va utiliza celulele de memorie stocate în colecție, ci va adăuga un element nou (alocați o nouă memorie)






    Trimiteți-le prietenilor: