User_Source Metadata pada Oracle

Anda ingin tau ada procedure, function dan trigger apa saja yang ada di schema anda? Atau mungkin anda sudah lupa dengan source code dari masing-masing procedure, function dan trigger yang anda buat sendiri? Anda bisa memanfaatkan metadata untuk keperluan ini.

Metadata sering diartikan sebagai ‘data tentang data’.  Pada DBMS Oracle, metadata disajikan dalam bentuk tabel dan diperlakukan seperti tabel, walaupun user tidak diberi hak untuk meng-insert, meng-update atau men-delete data yang ada di dalam metadata. Sederhananya, metadata pada DBMS Oracle adalah semacam tabel yang berisi informasi tentang data lain. Metadata pada Oracle hanya dapat di-select, tapi tidak bisa di-insert, update atau delete oleh user.

Salah satu metadata pada DBMS Oracle adalah USER_SOURCE. Metadata USER_SOURCE terdiri dari 4 kolom yaitu:

  1. Name: kolom ini berisi nama procedure, function dan trigger
  2. Type: kolom ini berisi tipe source, yaitu  ‘PROCEDURE’, ‘FUNCTION’ atau ‘TRIGGER’
  3. Line: kolom ini berisi nomor baris source code
  4. Text: kolom ini berisi source code pada baris yang ada di kolom ‘Line

Berikut ini adalah beberapa contoh penggunaan metadata USER_SOURCE:

Menampilkan daftar semua procedure, function dan trigger yang kita miliki

SELECT DISTINCT name, type FROM user_source;

Menampilkan daftar procedure dan jumlah baris source code dalam masing-masing procedure:

SELECT name, COUNT(line) AS "Jumlah Baris"
FROM user_source
WHERE type = 'PROCEDURE'
GROUP BY name;

Cara yang sama juga bisa digunakan untuk menampilkan daftar function dan jumlah baris source code dalam masing-masing function:

SELECT name, COUNT(line) AS "Jumlah Baris"
FROM user_source
WHERE type = 'FUNCTION'
GROUP BY name;

atau untuk untuk menampilkan daftar trigger dan jumlah baris source code dalam masing-masing trigger:

SELECT name, COUNT(line) AS "Jumlah Baris"
FROM user_source
WHERE type = 'TRIGGER'
GROUP BY name;

Dan mungkin yang paling bermanfaat (sekaligus berbahaya) adalah untuk menampilkan source code dalam sebuah procedure, function atau trigger:

SELECT text
FROM user_source
WHERE name = 'CHECK_SAL';

Semoga bermanfaat 😉

Iklan

2 pemikiran pada “User_Source Metadata pada Oracle

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s