Minden gyűjtemény az Oracle

Gyűjtemények vannak jelen egy vagy más formában a legtöbb programozási nyelv, és minden hasonló lényege a felhasználási feltételeket. Nevezetesen - lehetővé teszi, hogy tárolja objektumok gyűjteménye, azonos típusú és az áthúzódó teljes körét minden olyan intézkedés, vagy egy hurkot, hogy tartsa az azonos típusú akció minden elemét egy sor.

Ugyanígy, és a gyűjtemények használnak Oracle.

Általános információ a gyűjtemények PL / SQL
  • Létrehozása a gyűjtemény két lépésben történik
    1. Először állapítsa meg a típus (típus) gyűjtemény (assoc_array_type_def tervezés, varray_type_def és nested_table_type_def lesz később)
  • Aztán, hogy egy változót az ilyen típusú
  • Fellebbezés az elem a gyűjtemény szintaxis a következő:
  • Típusú változók gyűjtemények lehet NULL (és maguk az elemek gyűjteményei is).
  • Lehetséges többdimenziós gyűjtemény (gyűjtemény gyűjtemények)
  • típusú gyűjtemények

    PL / SQL blokk
    csomag
    séma szinten

    Csak bizonyos rendszerek szintjén

    asszociatív tömb

    Más néven index tábla vagy PL / SQL tábla.
    Típus a következőképpen jellemezhető (assoc_array_type_def):.

    Minden gyűjtemény az Oracle

    • Kell helyezni a memória a kis tábla, könyvtárak
    • A pass paraméterként gyűjtemény

    korlátozások:
    Ha megváltoztatja a beállításokat, és NLS_SORT NLS_COMP a munkamenet során befejezése után egy asszociatív tömb, akkor kap meglepő eredmények arra hívják fel az első módszer, az utolsó, következő, előző. Ön is problémát tapasztal küldésekor egy asszociatív tömböt paraméterként másik DB különböző beállításokkal és NLS_SORT NLS_COMP

    Ez egy sor egymás után tárolt elemek

    Típus a következőképpen jellemezhető (varay_type_def):

    • A méretet a megadott létrehozása
    • indexált 1
    • inicializálja a tervező
    • Ha a paraméterek nem kerülnek át a kivitelező, egy üres gyűjtemény vissza
    • Datatype - bármilyen adattípus, kivéve a ref kurzor
    • Tudjuk, hogy a lehető legnagyobb számú elemet
    • Hozzáférés az elemek a szekvencia

    korlátozások:
    A maximális mérete - 2147483647 elemek

    beágyazott táblázat

    Típus a következőképpen jellemezhető (nested_table_type_def):

    • Méret dinamikusan változik gyűjtemény
    • Talán lemerült állapotban, mint a képen látható
      <
      Minden gyűjtemény az Oracle
    • inicializálja a tervező
    • Ha a paraméterek nem kerülnek át a kivitelező, egy üres gyűjtemény vissza
    • Datatype - bármilyen adattípus, kivéve a ref kurzor
    • Ha csupán egyetlen skalár érték, az oszlop nevét - Column_Value
    • Ha a paraméterek a kivitelező nem telt el, egy üres gyűjtemény vissza
    Set műveletek beágyazott táblázatok

    Kezelés csak akkor lehetséges, gyűjtemények beágyazott táblázatban. Mindkét gyűjtemény a műveletben részt vevő legyen az azonos típusú.
    Az eredmény a művelet is a gyűjtemény beágyazott táblázatban.

    • Törlése törli az összes elemet. Azonnal törli a lefoglalt memória tárolja ezeket az elemeket.
    • Törlés (n) eltávolítja az elemet a n index. A memória nem szabadult. Az elem lehet állítani (azaz, meg egy újat), és ez lesz ugyanaz a memória, hogy tartotta az előzőt.
    • Törlés (n, m) eltávolítja az elemek indexek időközzel n..m
    • Ha a törölt elem a gyűjteményben, nem csinál semmit.
    • Trim () - törli egy elem végén a gyűjtemény. Ha nincs elem kivételt dob ​​SUBSCRIPT_BEYOND_COUNT
    • Vágás (n) - eltávolítja n elem végén a gyűjtemény. Ha az elemek kevesebb, mint n, kivétel dobott SUBSCRIPT_BEYOND_COUNT
    • Működik egy belső méret a gyűjtemény. Ie Ha az utolsó elem eltávolításra került a segítségével törlése, hívja a Trim () eltávolítja az elemet már korábban eltávolított.
    • Azonnal törli a lefoglalt memória tárolására ezen elemek
    • Ez jobb, ha nem használja együtt a Delete ()
    • EXTEND hozzáad egy elemet a nulla értéket a végén a gyűjtemény
    • EXTEND (n) hozzáadja a n elem, amelynek a null értéket végén a gyűjtemény
    • EXTEND (N, i) hozzáad egy elemet n példányban a i index a végén a gyűjtemény. Ha a gyűjtemény nem NULL konstreynt, csak ebben a formában lehet használni.
    • Ha az elemeket már korábban eltávolítottuk eljárás törlése, meghosszabbítása nem fogja használni, hogy megtartja a gyűjtemény memória sejtek, és adjunk hozzá egy új elemet (kiosztani új memória)