Interna tabeller

datatypen för en intern tabell specificeras fullständigt av dess linjetyp, nyckel och tabelltyp.

Linjetyp

linjetypen för en intern tabell kan vara vilken datatyp som helst. Datatypen för en intern tabell är normalt en struktur. Varje komponent i strukturen är en kolumn i den interna tabellen. Linjetypen kan dock också vara elementär eller annan intern tabell.

Nyckel

nyckeln identifierar tabellrader. Det finns två typer av nyckel för interna tabeller-standardnyckeln och en användardefinierad nyckel. Du kan ange om nyckeln ska vara unik eller icke-unik. Interna tabeller med en unik nyckel kan inte innehålla dubbla poster. Unikheten beror på tabellåtkomstmetoden.

vid tabeller med strukturerad radtyp bildas standardnyckeln från alla teckentypskolumner i den interna tabellen. Om en tabell har en elementär linjetyp är standardnyckeln hela raden. Standardtangenten för en intern tabell vars linjetyp är en intern tabell, standardtangenten är tom. Vid tabeller med icke-strukturerad radtyp består standardnyckeln av hela raden. Om radtypen också är en tabell definieras en tom nyckel.

den användardefinierade nyckeln kan innehålla alla kolumner i den interna tabellen som inte är någon intern tabell själva och inte innehåller interna tabeller. Referenser är tillåtna som tabellnycklar. Interna tabeller med en användardefinierad nyckel kallas nyckeltabeller. När du definierar nyckeln är sekvensen för nyckelfälten betydande. Du bör komma ihåg detta, till exempel om du tänker Sortera bordet enligt nyckeln.

Tabelltyp

tabelltypen bestämmer hur ABAP kommer åt enskilda tabellposter. Interna tabeller kan delas in i tre typer:

standardtabeller har ett internt linjärt index. Från en viss storlek uppåt administreras indexen för interna tabeller som träd. I detta fall ökar indexadministrationens overhead i logaritmisk och inte linjär relation till antalet linjer. Systemet kan komma åt poster antingen genom att använda tabellindex eller nyckeln. Svarstiden för nyckelåtkomst är proportionell mot antalet poster i tabellen. Nyckeln till ett standardbord är alltid icke-unikt. Du kan inte ange en unik nyckel. Det betyder att standardtabeller alltid kan fyllas mycket snabbt, eftersom systemet inte behöver kontrollera om det redan finns befintliga poster.

sorterade tabeller sparas alltid sorterade efter nyckeln. De har också ett internt index. Systemet kan komma åt poster antingen genom att använda tabellindex eller nyckeln. Svarstiden för nyckelåtkomst är logaritmiskt proportionell mot antalet tabellposter, eftersom systemet använder en binär sökning. Nyckeln till en sorterad tabell kan vara antingen unik eller icke-unik. När du definierar tabellen måste du ange om nyckeln ska vara unik eller icke-unik. Standardtabeller och sorterade tabeller är allmänt kända som indextabeller.

hashade tabeller har inget linjärt index. Du kan bara komma åt ett hashat bord med dess nyckel. Svarstiden är oberoende av antalet tabellposter och är konstant, eftersom systemet kommer åt tabellposterna med en hashalgoritm. Nyckeln till ett hashat bord måste vara unikt. När du definierar tabellen måste du ange nyckeln som unik.

allmänna interna tabeller

till skillnad från andra lokala datatyper i program behöver du inte ange datatypen för en intern tabell helt. Istället kan du ange en generisk Konstruktion, det vill säga nyckeln eller nyckeln och linjetypen för en intern tabelldatatyp kan förbli ospecificerad. Du kan använda generiska interna tabeller för att ange typerna av fältsymboler och gränssnittsparametrarna för procedurer . Du kan inte använda dem för att deklarera dataobjekt.

Leave a Reply