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), honor 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), honor 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.