Situs informasi aplokasi, Tips dan trik, Berita, informasi Teknologi, perkembangan Gadget dan internet.

Wednesday, November 13, 2019

Tips Dan Trik Data Collection Pada Pl/Sql

Index By Table


Sintak Dasar

Di bawah ini yakni sintak dasar Index By Table :

TYPE type_name IS TABLE OF element_type [NOT NULL] INDEX BY subscript_type; table_name type_name; 

Contoh Program #1

Di bawah ini yakni pola jadwal penggunaan Index By Table pada PL/SQL:

DECLARE    TYPE jurusan IS TABLE OF VARCHAR2(50)       INDEX BY VARCHAR2 (50);     daftar_mahasiswa   jurusan;    nama          VARCHAR2 (50); BEGIN    -- adding elements to the table    daftar_mahasiswa ('Nursalim') := 'Teknik Informatika';    daftar_mahasiswa ('Nani Indriyani') := 'Bahasa Inggris';    daftar_mahasiswa ('Ahmad Fatoni') := 'Ekonomi';    daftar_mahasiswa ('Naura Krasiva') := 'Public Relations';        -- printing the table    nama := daftar_mahasiswa.FIRST;     WHILE nama IS NOT NULL    LOOP       DBMS_OUTPUT.put_line (          'Nama ' || nama || ' Mengambil Jurusan ' || daftar_mahasiswa(nama));       nama := daftar_mahasiswa.NEXT (nama);    END LOOP; END; 

Output

Nama Ahmad Fatoni Mengambil Jurusan Ekonomi Nama Nani Indriyani Mengambil Jurusan Bahasa Inggris Nama Naura Krasiva Mengambil Jurusan Public Relations Nama Nursalim Mengambil Jurusan Teknik Informatika 

Contoh Program #2

Di bawah ini yakni pola jadwal penggunaan Index By Table pada PL/SQL:

DECLARE    CURSOR c_mahasiswa    IS       SELECT nama FROM mahasiswa;     TYPE c_list IS TABLE OF mahasiswa.nama%TYPE       INDEX BY BINARY_INTEGER;     daftar_nama   c_list;    counter     INTEGER := 0; BEGIN    FOR n IN c_mahasiswa    LOOP       counter := counter + 1;       daftar_nama (counter) := n.nama;       DBMS_OUTPUT.put_line (          'Mahasiswa(' || counter || ') : ' || daftar_nama (counter));    END LOOP; END; / 

Output

Mahasiswa(1) : Nursalim Alfarizi Mahasiswa(2) : Nani Indriyani Mahasiswa(3) : Desi Lisnawati 

Nested Table

Sintak Dasar

Di bawah ini yakni sintak dasar Nested Table pada PL/SQL :

TYPE type_name IS TABLE OF element_type [NOT NULL]; table_name type_name; 

Contoh Program #1

Di bawah ini yakni pola jadwal penggunaan Nested Table pada PL/SQL:

DECLARE    TYPE table_npm IS TABLE OF VARCHAR2 (10);    TYPE table_nama IS TABLE OF VARCHAR2 (50);    TYPE table_jurusan IS TABLE OF VARCHAR2 (50);     daftar_npm   table_npm;    daftar_nama   table_nama;    daftar_jurusan   table_jurusan;    total   INTEGER; BEGIN    daftar_npm := table_npm ('1001','1002','1003');    daftar_nama := table_nama ('Nursalim', 'Nani Indriyani', 'Desi Lisnawati');    daftar_jurusan := table_jurusan ('Teknik Informatika', 'Bahasa Inggris', 'Biologi');        total := daftar_npm.COUNT;    DBMS_OUTPUT.put_line ('Total ' || total || ' Mahasiswa');     FOR i IN 1 .. total    LOOP       DBMS_OUTPUT.put_line (          'Mahasiswa ('||(i)||')'||' --> NPM : '|| daftar_npm (i) || ', Nama : ' || daftar_nama (i) ||', Jurusan : '||daftar_jurusan(i));    END LOOP; END; 

Output

Total 3 Mahasiswa Mahasiswa (1) --> NPM : 1001, Nama : Nursalim, Jurusan : Teknik Informatika Mahasiswa (2) --> NPM : 1002, Nama : Nani Indriyani, Jurusan : Bahasa Inggris Mahasiswa (3) --> NPM : 1003, Nama : Desi Lisnawati, Jurusan : Biologi  PL/SQL procedure successfully completed. 

Contoh Program#2

Di bawah ini yakni pola jadwal penggunaan Nested Table pada PL/SQL:

DECLARE    CURSOR c_mahasiswa    IS       SELECT nama FROM mahasiswa;     TYPE c_list IS TABLE OF mahasiswa.nama%TYPE;     list_nama   c_list := c_list ();    counter     INTEGER := 0; BEGIN    FOR n IN c_mahasiswa    LOOP       counter := counter + 1;       list_nama.EXTEND;       list_nama (counter) := n.nama;       DBMS_OUTPUT.put_line (          'Mahasiswa(' || counter || '):' || list_nama (counter));    END LOOP; END; / 

Output:

Mahasiswa(1):Nursalim Alfarizi Mahasiswa(2):Nani Indriyani Mahasiswa(3):Desi Lisnawati  PL/SQL procedure successfully completed.