PLSQL
PL/SQL (Procedural Language/Structured Query Language) merupakan sebuah penggabungan antara bahasa pemrograman prosedural (PL) dan SQL syntax. PL/SQL adalah fasilitas yang disediakan Oracle sehingga pengguna dapat memanfaatkan konsep pemrograman. Dalam PL/SQL dapat digunakan perintah untuk memanipulasi data yang ada dalam database Oracle. PL/SQL membentuk pemrograman terstruktur dalam memproses data.
Beberapa kelebihan PL/SQL dalam database Oracle : · PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses didalam server.
· Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna.
· PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan program aplikasi.
Dapat ditulis dalam beberapa baris (tidak harus dalam satu baris perintah)
Karakter dan literal diapit oleh tanda kutip
Setiap perintah/blok diakhiri dengan titik koma(;)
Komentar diawali dengan tanda min dua kali(--) atau diapit dengan tanda /*…*/
Pemberian nilai menggunakan :=
Dapat menggunakan Bind Variable
Tanda garis miring(/) berarti “run”
Struktur PL/SQL mirip dengan struktur bahasa pascal atau delphi yang menggunakan struktur blok, sehingga akan mempermudah pengertian dalam pemrograman dengan PL/SQL. Struktur Blok berisi perintah SQL dengan kondisi yang berbeda. Perintah PL/SQL dapat menangani kesalahan saat dijalankan. Setiap pengetikan dengan menggunakan PL/SQL dalam SQL*Plus selalu diakhiri dengan tanda /(slash). Sintaks penggunaan PL/SQL adalah sebagai berikut :
Nama dari blok PL/SQL yang dapat menerima parameter dan dapat dipanggil terdapat dua jenis:
· Sebuah prosedur yang digunakan untuk melakukan suatu kegiatan tertentu
· Sebuah fungsi yang digunakan untuk menghitung suatu nilai
Menggunakan struktur blok PL/SQL standart
Modular dapat dipergunakan berulang-ulang, ditingkatkan/dikembangkan dan mudah dalam perawatan.
Struktur diatas dapat dijelaskan sebagai berikut :
Bagian ini hanya digunakan jika PL/SQL diberikan nama,misalnya untuk prosedur atau fungsi. Bagian ini berisi nama blok,daftar parameter, dan pengembalian hasil (return) jika blok adalahfungsi.
Bagian Deklarasi (declaration)
Bagian ini untuk membuat deklarasi mengenai semua variable dan konstanta yang direferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini dimulai dengan perintah DECLARE. Jika tidak ada variable atau konstanta yang ingin dideklarasikan bagian ini boleh dihilangkan, bersifat optional.
Bagian Eksekusi (Execution)
Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis. Bagian eksekusi ini harus dimulai dengan perintah BEGIN.
Bagian Perkecualian (Exception)
Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada waktu eksekusi program PL/SQL, bersifat optional. Jika program tidak memuat cara menangani kesalahan, bagian ini boleh dihilangkan.Setiap pernyataan PL/SQL harus diakhiri dengan tanda titik koma(;) dan semua program PL/SQL harus diakhiri dengan perintah END.
Bentuk Umum Struktur PL/SQL
konstanta CONSTANT tipe_data := nilai;
WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;
DBMS_OUTPUT merupakan paket yang disediakan oleh Oracle PL / SQL dan PUT_LINE merupakan salah satu prosedur yang dikemas. Menampilkan nilai-nilai pada SQL Plus * terminal yang harus diaktifkan dengan SERVEROUTPUT SET ON terlebih dahulu. Untuk menjalankan kode sampel ini, login ke SQL * Plus. PL / SQL blok diakhiri dengan tanda garis miring / atau garis byitself.
· NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER, INT, NUMERIC, REAL, SMALLINT
Tipe Data tambahan : RECORD, ARRAY
Type data yang dapat dikenali dalam PL/SQL dapat berupa type data SQL dan type data seperti :
Dipakai untuk menyatakan data logika, yaitu TRUE(benar), FALSE(salah), dan NULL(kosong).
Digunakan untuk mendeklarasikan bilangan yang tidak mempunyai angka desimal. Tipe dataNATURAL dan POSITIVE merupakan subset dariBINARY_INTEGER.
Tipe data ini dipakai untuk menandakan bahwa variabelyang deklarasikan sama dengan tipe data dari kolom tabel tertentu.
Tipe data ini menandakan bahwa sekelompok variabel adalah sama dengan tipe data darirow suatu tabel tertentu.
Tipe data komposit untuk pemakaian yang lebih kompleks.
Pada bagian deklarasi ditempatkan variable dan konstanta yang dipakai oleh pernyataan PL/SQL yang dibuat.
· Variabel adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori komputer. Dapat menerima nilai baru atau sebaliknya diubah pada saat program dieksekusi Bentuk Umum :
variable_name datatype [NOT NULL := value ];
· Variable_name adalah nama variabel.
· Datatype adalah valid PL / SQL datatype.
· NOT NULL adalah sebuah spesifikasi opsional pada variabel.
· Nilai atau DEFAULT juga merupakan spesifikasi opsional, di mana anda bisa menginisialisasi variabel.
· Setiap deklarasi variabel adalah pernyataan terpisah dan harus diakhiri dengan titik koma.
Ketika variabel ditetapkan sebagai TIDAK NULL, Anda harus menginisialisasi variable ketika dideklarasikan. Contoh di bawah ini menyatakan dua variabel, salah satunya adalah tidak null.
Nilai variabel yang bisa berubah dalam pelaksanaan atau pengecualian bagian PL / SQL Block. Kita dapat menempatkan nilai ke variabel dalam dua cara yang diberikan di bawah ini.
Kita dapat langsung memberikan nilai pada variabel. Sintaks Umum adalah: variable_name:= value;
Kita dapat menempatkan nilai ke variabel langsung dari kolom database dengan menggunakan SELECT… INTO statement. INTO pernyataan.
Digunakan untuk menyimpan sebuah nilai di memori komputer. Nilai yang disimpan bersifat tetap (konstan). Nilai ditentukan pada saat deklarasi dibuat sehingga nilainya tetap pada saat program dieksekusikan.
Contoh Deklarasi Konstanta :
pi CONSTANT real := 3.14;
lebar CONSTANT integer := 100;
· Digunakan untuk memudahkan proses maintenance
· /* ... */ : untuk beberapa baris komentar
· -- ... : untuk satu bari komentar
/* Ini adalah komentar Oracle */
-- Ini juga komentar Oracle
PL/SQL (Procedural Language/Structure Query Language) adalah suatu blok yang berisi skrip-skrip bahasa prosedural. PL/SQL merupakan bahasa pemrograman procedural. PL/SQL dapat meningkatkan kinerja database
– Bagian pendeklarasian tipe data (opsional)
– Bagian penulisan perintah
– Bagian eksepsi (opsional)
PL / SQL mendukung variabel, kondisi, loop dan pengecualian. Array juga didukung, meskipun dengan cara yang agak tidak biasa, yang melibatkan penggunaan PL / SQL koleksi. PL / SQL koleksi adalah topik yang agak maju. Implementasi dari versi 8 dan seterusnya Oracle Database telah memasukkan fitur yang berhubungan dengan objek-orientasi. PL / SQL program unit (dasarnya kontainer code) dapat dikompilasi ke database Oracle. Pemrogram sehingga dapat menanamkan PL / SQL unit fungsionalitas ke dalam database secara langsung. Mereka juga dapat menulis skrip yang berisi PL / SQL program unit yang dapat membaca ke database menggunakan alat Oracle SQL * Plus.
Setelah unit program telah disimpan ke dalam database, mereka menjadi tersedia untuk eksekusi di lain waktu. Sementara programmer dapat dengan mudah menanamkan Data Manipulation Language (DML) laporan langsung ke / kode mereka PL SQL lurus ke depan dengan menggunakan statemen SQL, Data Definition Language (DDL) membutuhkan lebih kompleks "Dynamic SQL" pernyataan yang akan ditulis dalam kode / PL SQL. Namun, pernyataan DML mendukung mayoritas PL / SQL code dalam aplikasi perangkat lunak khas.
Dalam kasus PL / SQL SQL dinamis, versi awal dari Database Oracle diperlukan penggunaan perpustakaan paket DBMS_SQL rumit Oracle. versi lebih baru memiliki namun memperkenalkan sederhana "Native Dynamic SQL", bersama dengan sintaks terkait SEGERA MELAKSANAKAN.
Oracle Corporation lazim menambah fungsionalitas setiap rilis paket dengan berturut-turut dari Database Oracle.
TPengecualian, kesalahan yang timbul selama pelaksanaan kode, memiliki satu dari dua jenis:
TDitetapkan pengguna pengecualian.
Tipe data utama dalam PL / SQL termasuk NOMOR, INTEGER, CHAR, VARCHAR2, DATE, TIMESTAMP, dll TEKS. Fungsi di PL / SQL adalah kumpulan SQL dan / PL SQL laporan yang melakukan tugas dan harus mengembalikan nilai ke lingkungan menelepon. fungsi yang didefinisikan pengguna digunakan untuk melengkapi ratusan fungsi yang dibangun oleh Oracle.Simak
Ada dua jenis fungsi dalam PL / SQL. Fungsi tradisional ditulis dalam bentuk:
TCREATET TORT TREPLACET TFUNCTIONT TT T[(TinputT/Toutput variable declarationsT)]T TRETURNT return_type
TCREATET TORT TREPLACET TFUNCTIONT TT T[(TinputT/Toutput variable declarationsT)]T TRETURNT return_type
T[TTAUTHIDT TTT]T T[TTTT]T T
variable_name NUMBER(P[,S]) := VALUE;
Tuntuk mendefinisikan sebuah variabel numerik, programmer menambahkan para NOMOR tipe variabel dengan definisi nama. Untuk menentukan presisi (opsional) (P) dan skala (opsional) (S), salah satu lebih lanjut dapat menambahkan ini dalam kurung bulat, dipisahkan dengan koma. ("Precision" dalam konteks ini mengacu pada jumlah digit yang variabel dapat menahan, "skala" mengacu pada jumlah digit yang dapat mengikuti titik desimal.)T TSebuah pilihan tipe data lain untuk variabel numerik akan mencakup: binary_float, binary_double, Desember, desimal presisi, double, float, integer, int, numerik, nyata, smallint, binary_integer
variable_name TVARCHAR2TT(TLT)T T:=T T'Text'TT;
TUntuk mendefinisikan sebuah variabel karakter, programmer biasanya menambahkan para VARCHAR2 tipe variabel dengan definisi nama. Ada berikut dalam kurung jumlah karakter maksimum yang dapat menyimpan variabel. Tipe data lain untuk variabel karakter meliputi: varchar, char, panjang, mentah, panjang mentah, nchar, nchar2, CLOB, gumpalan, bfile
TPL / SQL fungsi analogi ke tertanam bahasa prosedural yang terkait dengan database relasional lainnya. Sybase ASE dan Microsoft SQL Server telah Transact-SQL, PostgreSQL memiliki PL / DB2 pgsql (yang mencoba untuk meniru PL / SQL ke mana), dan IBM termasuk SQL prosedural Bahasa, [3] yang sesuai dengan / standar SQL ISO SQL PSM .TTPara desainer dari PL / SQL model sintaks pada bahwa Ada. Baik Ada dan PL / SQL memiliki Pascal sebagai nenek moyang yang sama, dan PL / SQL juga menyerupai Pascal dalam berbagai aspek. Struktur paket / PL SQL mirip struktur Pascal program dasar atau unit Borland Delphi. Pemrogram dapat mendefinisikan data global-jenis, konstanta dan variabel statis, publik dan swasta, dalam sebuah paket / PL SQL.T
TPL / SQL juga memungkinkan untuk definisi kelas dan instantiate ini sebagai obyek dalam PL / SQL code. Ini menyerupai penggunaan dalam bahasa pemrograman berorientasi objek seperti Object Pascal, C dan Java. PL / SQL merujuk kepada kelas sebagai suatu "Abstrak Data Type" (ADT) atau "User Defined Type" (UDT), dan mendefinisikan sebagai tipe data SQL Oracle-sebagai lawan jenis / PL SQL yang ditetapkan pengguna, yang memungkinkan yang digunakan baik dalam Engine Oracle SQL dan Oracle PL / SQL engine. Constructor dan metode dari Tipe Data Abstrak ditulis dalam PL / SQL. The Tipe Data Abstrak dihasilkan dapat beroperasi sebagai kelas objek dalam PL / SQL. objek tersebut juga dapat bertahan sebagai nilai-nilai kolom dalam tabel database Oracle.
TPL / SQL pada dasarnya berbeda dari Transact-SQL, meskipun kesamaan dangkal. Porting kode dari satu ke yang lain biasanya melibatkan kerja non-sepele, bukan hanya karena perbedaan dalam fitur set dari dua bahasa, tetapi juga karena perbedaan yang sangat signifikan dalam cara menangani Oracle dan SQL Server dengan concurrency dan penguncian.T
TProyek Fyracle bertujuan untuk memungkinkan eksekusi PL / SQL code dalam open-source database Firebird.
Pembahasan kali ini menunjukkan kepada kita bagaimana menyusun aliran kontrol melalui program PL/SQL. Kita akan mempelajari bagaimana perintah-perintah dihubungkan dengan struktur-struktur kontrol sederhana namun powerful, yang memiliki Tsingle entryTdan Texit pointT. Secara bersama-sama, struktur-struktur ini dapat menangani berbagai situasi. Penggunaan yang tepat akan menghasilkan program terstruktur yang baik.
Keuntungan Penggunaan PL/SQL
– Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang dapat digunakan bersama-sama dalam bentuk stored procedure
– Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok dalam satu perintah yang secara drastis dapat menurunkan trafik jaringan
– Modular. Bentuk modular memungkinkan banyak kemudahan yang dapatdiperoleh
– Portable. PL/SQL adalah sarana yang asli dimiliki oleh Oracle Server, artinya, program PL/SQL dapat dengan mudah dipindahkan dari satu Oracle Server ke Oracle Server lainnya, meskipun dengan OS atau platform yang berbeda.
– Dapat mendeklarasikan Variable
– Dapat berupa Variable, Constant, Cursor dan Exception
– Penggunaan variable/identifier sangat memudahkan dalam membuat suatu perintah. Misalkan untuk membaca hasil suatu perintah SELECT untuk diproses dan hasilnya digunakan untuk melakukan proses lainnya
– Dapat menggunakan Struktur Kontrol :LOOP, FOR, WHILE
– Error bisa dihasilkan/dibangkitkan oleh Oracle
– Server atau bisa dibangkitkan sendiri dengan sengaja
– Untuk mengantisipasi berbagai hal yang barangkali sulit untuk ditangani secaralangsung menggunakan kontrol program
SQL Plus
SQL * Plus adalah Oracle utilitas baris perintah program yang dapat menjalankan SQL dan PL / SQL perintah interaktif atau dari skrip. SQL * Plus beroperasi sebagai alat yang relatif sederhana dengan antarmuka baris perintah dasar. Programmer dan DBA umumnya menggunakannya sebagai default antarmuka mendasar tersedia di hampir semua instalasi perangkat lunak Oracle.
SQL * Plus memahami tiga kategori teks:
SQL * Plus internal perintah, misalnya:
lingkungan kontrol perintah seperti SET
pemantauan lingkungan seperti perintah SHOW
Script dapat mencakup semua komponen.
Seorang programmer Oracle dalam lingkungan perangkat lunak tepat-dikonfigurasi bisa meluncurkan SQL * Plus, misalnya, dengan memasukkan:
di mana pengguna Oracle scott
memiliki password tiger
. SQL * Plus kemudian menyajikan sebuah prompt dengan bentuk standar dari:
menggunakan Interaktif kemudian dapat mulai dengan memasukkan pernyataan SQL (diakhiri dengan titik koma), sebuah PL / SQL block, atau perintah lain. Sebagai contoh:
SQL> pilih 'Halo dunia' sebagai contoh dari dual;
--------------------------------
Versi pertama dari SQL * Plus disebut UFI ("User Friendly Interface"). UFI muncul dalam database Oracle rilis hingga Versi 4.
Setelah Oracle programmer telah menambahkan fitur baru untuk UFI, namanya menjadi Advanced UFI. Nama "Advanced UFI" diubah menjadi "SQL * Plus" sebelum rilis ini]versi.
Pada tahun 2010 produk terus menanggung nama SQL * Plus.
· SQL Plus memungkinkan Anda untuk memanipulasi perintah SQL dan / PL SQL blok, dan untuk melakukan banyak tugas-tugas tambahan juga. Melalui Plus * SQL, Anda dapat:
Memasukkan, mengedit, menyimpan, mengambil, dan menjalankan perintah SQL dan / PL SQL blok
Format, melakukan perhitungan pada, menyimpan, dan mencetak hasil query dalam bentuk laporan
Kolom daftar definisi untuk tabel apapun
·
Mengakses dan menyalin data antara database SQL (tidak tercakup)
·
Mengirim pesan ke dan menerima tanggapan dari pengguna akhir (tidak tercakup)
Memulai SQL * Plus
Anda dapat mengakhiri perintah SQL dalam salah satu dari tiga cara:
1. Sebuah titik koma (;) mengatakan * SQL plus yang Anda ingin menjalankan perintah. SQL * Plus akan memproses perintah dan menyimpannya dalam buffer SQL. Catatan: Anda tidak dapat memasukkan (/**/) komentar pada baris yang sama yang Anda masukkan titik koma.
2. A slash (/) on line dengan sendirinya juga memberitahu SQL * Plus yang ingin anda jalankan perintah. SQL * Plus akan memproses perintah dan menyimpannya dalam buffer SQL.
3. Sebuah baris kosong mengatakan SQL * Plus bahwa Anda telah selesai memasukkan perintah, tetapi tidak ingin menjalankannya lagi. Tekan [RETURN] pada akhir baris terakhir perintah. SQL * Plus meminta Anda dengan nomor lain baris. Tekan [RETURN] lagi; SQL * Plus sekarang meminta Anda dengan perintah SQL * Plus prompt. SQL * Plus tidak mengeksekusi perintah, tetapi menyimpan dalam buffer SQL. Jika Anda kemudian masukkan lagi perintah SQL dan jalankan dengan menggunakan tanda titik koma (;) atau garis miring (/), SQL * Plus menimpa perintah tidak dijalankan dalam buffer.
Anda dapat memasukkan komentar dalam sebuah file perintah dalam salah satu dari tiga cara:
1. Menggunakan perintah KETERANGAN pada baris dengan sendirinya dalam file perintah, diikuti oleh komentar pada baris yang sama. Untuk melanjutkan komentar pada baris tambahan, masukkan perintah tambahan KETERANGAN. Jangan letakkan perintah KETERANGAN antara baris yang berbeda dari perintah SQL tunggal.
2. Menggunakan pembatas komentar SQL, /*...*/, pada baris terpisah dalam file perintah Anda, pada baris yang sama sebagai perintah SQL, atau pada baris dalam sebuah blok / PL SQL. Komentar dapat baris span ganda.
3. Menggunakan ANSI / ISO `` - \''ruang-gaya komentar dalam pernyataan SQL, / PL SQL blok, atau * SQL Plus perintah. Karena tidak ada pembatas berakhir, komentar tidak dapat span beberapa baris. Untuk PL / SQL dan SQL, masukkan komentar setelah perintah pada satu baris atau satu baris sendiri. Untuk perintah SQL Plus *, Anda hanya dapat memasukkan `` - \''ruang-gaya komentar jika mereka tinggal sendirian di garis.