School of Information Systems

Indexing Tables of Records

Kadang kala, kita tidak hanya perlu menyimpan satu baris data, melainkan beberapa baris data. Untuk kasus seperti ini, kita tidak bisa lagi menggunakan record, melainkan collection.

Collection

  • Collection adalah nama dari sekelompok data berjenis sama yang disimpan sebagai variabel. Sama seperti record, collection adalah tipe data composite. Contoh dari collection:
    INDEX BY tables, INDEX BY tables of records, Nested Tables, dan Varrays.
  • INDEX BY table memiliki primary key agar kita bisa mereferensikan setiap baris tabel tersebut. Primary key ini biasanya bertipe data BINARY_INTEGER, tapi bisa juga VARCHAR2. Primary key bisa juga berupa primary key dari tabel sumber.

  • Syntax:
    DECLARE
    TYPE type_name IS TABLE OF DATA_TYPE — DATA_TYPE bisa berupa skalar maupun composite.
    INDEX_BY PRIMARY_KEY_DATA_TYPE;
    identifier type_name;
    BEGIN
    FOR record IN (SELECT column FROM table) LOOP
    identifier(primary_key) := record.column;
    END LOOP;
    END;
  • Kita bisa menggunakan procedure dan functions yang telah disediakan pada INDEX BY table, seperti EXISTS, COUNT, FIRST, LAST, PRIOR, NEXT, DELETE, TRIM.
  • Apabila kita menyimpan kumpulan record menggunakan INDEX BY table, kita bisa mereferensi setiap field di record dengan menggunakan syntax: table(index).field
Aileen, Mediana Aryuni