PL/SQL Subprograms
8.20. Memanggil External Subprograms
PL/SQL merupakan sebuah development tool yang powerful; kita dapat menggunakannya untuk hampir semua keperluan. Namun, ia secara khusus digunakan untuk pemrosesan transaksi SQL. Sehingga, beberapa tugas lebih cepat diselesaikan dalam sebuah bahasa dengan level yang lebih rendah seperti halnya C, yang mana sangat efisien pada perhitungan presisi-mesin. Tugas-tugas lain lebih mudah dilakukan di dalam sebuah bahasa berorientasi objek penuh dan terstandarisasi seperti halnya Java.
Untuk mendukung pemrosesan khusus seperti ini, kita dapat menggunakan specs pemanggilan PL/SQL untuk menjalankan external subprograms (yaitu, subprogram yang ditulis dalam bahasa-bahasa lain). Hal ini membuat kekuatan dan kemampuan bahasa-bahasa tersebut tersedia bagi kita dari PL/SQL.
Sebagai contoh, kita dapat memanggil Java stored procedures dari suatu PL/SQL block, subprogram, atau package. Misalkan kita menyimpan Java class berikut ini di dalam database:
import java.sql.*;
import oracle.jdbc.driver.*;
public class Adjuster {
public static void raiseSalary (int empNo, float percent)
throws SQLException {
Connection conn = new OracleDriver().defaultConnection();
String sql = "UPDATE emp SET sal = sal * ? WHERE empno = ?";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setFloat(1, (1 + percent / 100));
pstmt.setInt(2, empNo);
pstmt.executeUpdate();
pstmt.close();
} catch (SQLException e) {System.err.println(e.getMessage());}
}
}
Class Adjuster tersebut memiliki satu method, yang memunculkan gaji dari karyawan berdasarkan prosentase yang diberikan. Karena raiseSalary merupakan sebuah void method, kita mem-publish-nya sebagai sebuah procedure dengan menggunakan spec pemanggilan berikut ini:
CREATE PROCEDURE raise_salary (empno NUMBER, pct NUMBER) AS LANGUAGE JAVA NAME 'Adjuster.raiseSalary(int, float)';
Kemudian, kita dapat memanggil procedure raise_salary dari sebuah anonymous PL/SQL block, seperti berikut ini:
DECLARE emp_id NUMBER; percent NUMBER; BEGIN -- mendapatkan nilai-nilai emp_id and prosentase raise_salary(emp_id, percent); -- memanggil external subprogram
Secara khusus, subprogram eksternal C digunakan sebagai jembatan dengan embedded systems, menyelesaikan masalah-masalah engineering, menganalisa data, atau mengontrol real-time devices dan proses-proses. Subprogram eksternal C mengijinkan kita untuk mengembangkan fungsionalitas dari database server, dan mememindahkan computation-bound programs dari client ke server, dimana mereka dieksekusi lebih cepat.
8.21. Menciptakan Halaman Web Dinamis dengan PL/SQL Server Pages
PL/SQL Server Pages (PSPs) memungkinkan kita membangun halaman-halaman Web dengan content yang dinamis. Mereka merupakan alternatif untuk meng-kode-kan sebuah stored procedure yang menulis kode HTML untuk sebuah halaman web, satu baris pada satu waktu.
Menggunakan tags khusus, kita dapat menggabungkan PL/SQL scripts ke dalam kode sumber HTML. Scripts tersebut dieksekusi ketika halaman-halam di-minta oleh Web clients seperti halnya browsers. Sebuah script dapat menerima parameter-parameter, melakukan query atau update terhadap database, dan kemudian menampilkan halaman yang ter-costumize untuk menampilkan hasil.
Selama development, PSPs dapat berlaku seperti halnya templates dengan sebuah bagian statis untuk layout halaman dan sebuah bagian dinamis untuk content. Kita dapat mendesain layout menggunakan HTML authoring tools favorit kita (misalnya Macromedia Dreamveaver dsb), meninggalkan placeholders untuk content dinamis. Kemudian kita dapat menulis PL/SQL scripts yang men-generate content tersebut. Ketika selesai, secara mudah kita dapat me-load PSP files ke dalam database sebagai stored procedures.
Silahkan melanjutkan membaca pembahasan PL/SQL Packages
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi. Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma, Uranus dsb. |


































