Record Pada PL/SQL

Table-Based Record

Contoh:

DECLARE
   mahasiswa_rec   mahasiswa%ROWTYPE;
BEGIN
   SELECT *
     INTO mahasiswa_rec
     FROM mahasiswa
    WHERE npm = '2015001';

   DBMS_OUTPUT.put_line ('NPM: ' || mahasiswa_rec.npm);
   DBMS_OUTPUT.put_line ('Nama: ' || mahasiswa_rec.nama);
   DBMS_OUTPUT.put_line ('Jurusan: ' || mahasiswa_rec.jurusan);
END;
/

Output

NPM: 2015001
Nama: Nursalim
Jurusan: Teknik Informatika

PL/SQL procedure successfully completed.

Cursor-Based Record

Contoh:

DECLARE
   CURSOR mahasiswa_cur
   IS
      SELECT npm, nama, jurusan FROM mahasiswa;

   mahasiswa_rec   mahasiswa_cur%ROWTYPE;
BEGIN
   OPEN mahasiswa_cur;

   LOOP
      FETCH mahasiswa_cur INTO mahasiswa_rec;

      EXIT WHEN mahasiswa_cur%NOTFOUND;
      DBMS_OUTPUT.put_line ('NPM : '||mahasiswa_rec.npm);
      DBMS_OUTPUT.put_line ('Nama : '||mahasiswa_rec.nama);
      DBMS_OUTPUT.put_line ('Jurusan : '||mahasiswa_rec.jurusan);
   END LOOP;
END;
/

Output:

NPM : 2015001
Nama : Nursalim
Jurusan : Teknik Informatika
NPM : 2015002
Nama : Nani Indriyani
Jurusan : Bahasa Inggris
NPM : 2015003
Nama : Desi Lisnawati
Jurusan : Biologi


User-Defined Record

Contoh:

DECLARE
   TYPE karyawan IS RECORD
   (
      nik     VARCHAR (50),
      nama    VARCHAR (50),
      jenis_kelamin   VARCHAR (50),
      gaji   NUMBER
   );

   karyawan1   karyawan;
   karyawan2   karyawan;
BEGIN
   -- Data Karyawan 1
   karyawan1.nik := '001';
   karyawan1.nama := 'Nursalim';
   karyawan1.jenis_kelamin := 'Laki-Laki';
   karyawan1.gaji := 1000000;
   
   -- Data Karyawan 2
   karyawan2.nik := '002';
   karyawan2.nama := 'Nani Indriyani';
   karyawan2.jenis_kelamin := 'Perempuan';
   karyawan2.gaji := 500000;
   
   -- Cetak Data Karyawan 1
   DBMS_OUTPUT.put_line ('Karyawan 1 NIK : ' || karyawan1.nik);
   DBMS_OUTPUT.put_line ('Karyawan 1 Nama : ' || karyawan1.nama);
   DBMS_OUTPUT.put_line ('Karyawan 1 Jenis Kelamin : ' || karyawan1.jenis_kelamin);
   DBMS_OUTPUT.put_line ('Karyawan 1 Gaji : ' || karyawan1.gaji);
   
   -- Cetak Data Karyawan 2
   DBMS_OUTPUT.put_line ('Karyawan 2 NIK : ' || karyawan2.nik);
   DBMS_OUTPUT.put_line ('Karyawan 2 Nama : ' || karyawan2.nama);
   DBMS_OUTPUT.put_line ('Karyawan 2 Jenis Kelamin : ' || karyawan2.jenis_kelamin);
   DBMS_OUTPUT.put_line ('Karyawan 2 Gaji : ' || karyawan2.gaji);
END;
/

Output:

Karyawan 1 NIK : 001
Karyawan 1 Nama : Nursalim
Karyawan 1 Jenis Kelamin : Laki-Laki
Karyawan 1 Gaji : 1000000
Karyawan 2 NIK : 002
Karyawan 2 Nama : Nani Indriyani
Karyawan 2 Jenis Kelamin : Perempuan
Karyawan 2 Gaji : 500000

PL/SQL procedure successfully completed.

Record Sebagai Parameter Store Procedure

Contoh:

DECLARE
   TYPE karyawan IS RECORD
   (
      nik     VARCHAR (50),
      nama    VARCHAR (50),
      jenis_kelamin   VARCHAR (50),
      gaji   NUMBER
   );

   karyawan1   karyawan;
   karyawan2   karyawan;
PROCEDURE cetak_karyawan(data_karyawan karyawan) IS
BEGIN
    DBMS_OUTPUT.put_line ('Karyawan NIK : ' || data_karyawan.nik);
   DBMS_OUTPUT.put_line ('Karyawan Nama : ' || data_karyawan.nama);
   DBMS_OUTPUT.put_line ('Karyawan Jenis Kelamin : ' || data_karyawan.jenis_kelamin);
   DBMS_OUTPUT.put_line ('Karyawan Gaji : ' || data_karyawan.gaji);
END;
   
BEGIN
   -- Data Karyawan 1
   karyawan1.nik := '001';
   karyawan1.nama := 'Nursalim';
   karyawan1.jenis_kelamin := 'Laki-Laki';
   karyawan1.gaji := 1000000;
   
   -- Data Karyawan 2
   karyawan2.nik := '002';
   karyawan2.nama := 'Nani Indriyani';
   karyawan2.jenis_kelamin := 'Perempuan';
   karyawan2.gaji := 500000;
   
   -- Cetak Data Karyawan
   cetak_karyawan(karyawan1);
   cetak_karyawan(karyawan2);
   
END;
/

Output:

Karyawan NIK : 001
Karyawan Nama : Nursalim
Karyawan Jenis Kelamin : Laki-Laki
Karyawan Gaji : 1000000
Karyawan NIK : 002
Karyawan Nama : Nani Indriyani
Karyawan Jenis Kelamin : Perempuan
Karyawan Gaji : 500000

PL/SQL procedure successfully completed.


Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment