Kamis, 29 September 2011

RESUME PBD PERT. 1

Sekilas PL / SQL

Tentang PL / SQL
PL / SQL adalah ekstensi prosedural untuk SQL dengan desain fitur bahasa pemrograman.
• Data manipulasi dan permintaan pernyataan SQL termasuk dalam unit kode prosedural
.
Manfaat PL / SQL
  • integrasi
  • Peningkatan Kinerja
  • Modularize pengembangan program
  • PL / SQL portabel.
  • Anda dapat mendeklarasikan variabel.
  • Anda dapat memprogram dengan struktur kontrol untuk bahasa prosedural.
  • PL / SQL dapat menangani kesalahan.


Manfaat dari subprogram
• Mudah perawatan
• Peningkatan keamanan data dan integritas
• Peningkatan kinerja
• Peningkatan kejelasan kode

Ringkasan
• PL / SQL adalah ekstensi ke SQL.
• Blok PL / SQL kode dilewatkan dan diproses oleh mesin PL / SQL.
• Manfaat PL / SQL:
- Integrasi
- Peningkatan kinerja
- Portabilitas
- Modularitas pengembangan program
• subprogram dinamai PL / SQL blok, dinyatakan sebagai baik prosedur atau fungsi.
• Anda dapat meminta subprogram dari lingkungan yang berbeda.

Mendeklarasikan Variabel


Struktur Blok PL / SQL

DECLARE (Optional)
Variables, cursors, user-defined exceptions
BEGIN (Mandatory)
– SQL statements
– PL/SQL statements
EXCEPTION (Optional)
Actions to perform when errors occur
END; (Mandatory)

Melaksanakan Pernyataan dan Blok PL / SQL

DECLARE
v_variable VARCHAR2(5);
BEGIN
SELECT column_name
INTO v_variable
FROM table_name;
EXCEPTION
WHEN exception_name THEN
...
END;

Tipe block

Anonymous
[DECLARE]
BEGIN
--statements
[EXCEPTION]
END;

Procedure
PROCEDURE name
IS
BEGIN
--statements
[EXCEPTION]
END;

Function
FUNCTION name
RETURN datatype
IS
BEGIN
--statements
RETURN value;
[EXCEPTION]
END;

Program Constructs

Tools Constructs
Anonymous blocks
Application procedures or
functions
Application packages
Application triggers
Object types

Database Server Constructs
Anonymous blocks
Stored procedures or
functions
Stored packages
Database triggers
Object types

Penggunaan Variabel
Variabel dapat digunakan untuk:
• Sementara penyimpanan data
• Manipulasi nilai yang disimpan
• Reusability
• Kemudahan pemeliharaan

Penanganan Variabel dalam PL / SQL
• Mendeklarasikan dan menginisialisasi variabel dalam bagian deklarasi
.• Tetapkan nilai-nilai baru untuk variabel dalam bagian executable
• Pass values ke dalam blok PL / SQL  melalui parameter.
• Lihat hasil melalui variabel output.

Jenis Variabel
• PL / SQL variabel:
– Scalar
– Composite
– Reference
– LOB (large objects)
• Non-PL/SQL variabel: Bind dan host variabel

Menggunakan Variabel iSQL * Plus Dalam Blok PL / SQL
• PL / SQL tidak memiliki kemampuan input atau output dari dirinya sendiri.
• Anda bisa mereferensi variabel substitusi dalam PL / SQL blok dengan ampersand sebelumnya.
•variabel iSQL * Plus host (atau "bind")  dapat digunakan untuk menjalankan nilai-nilai waktu dari PL / SQL blok kembali ke lingkungan * iSQL plus .

Mendeklarasikan variable PL/SQL
Syntax:
identifier [CONSTANT] datatype [NOT NULL]
[:= | DEFAULT expr];
Examples:
DECLARE
v_hiredate DATE;
v_deptno NUMBER(2) NOT NULL := 10;
v_location VARCHAR2(13) := 'Atlanta';
c_comm CONSTANT NUMBER := 1400;

Pedoman untuk menyatakan Variabel PL / SQL
• Ikuti naming conventions.
• Inisialisasi variabel yang ditunjuk sebagai NOT NULL dan CONSTANT.
• Deklarasikan satu  identifier per baris.
• Inisialisasi  identifiers dengan menggunakan tugas operator (: =) atau kata DEFAULT reserved.
identifiers: = expr;

Aturan penamaan
• Dua variabel dapat memiliki nama yang sama, asalkan mereka berada dalam blok yang berbeda.
• Nama variabel (identifier) tidak harus sama sebagai nama kolom tabel yang digunakan di blok tersebut.

DECLARE
employee_id NUMBER(6);
BEGIN
SELECT employee_id
INTO employee_id
FROM employees
WHERE last_name = 'Kochhar';
END;
/

Inisialisasi variabel dan kata kunci
• Tugas operator (: =)
• kata kunci DEFAULT
• kendala NOT NULL

Syntax:
identifier := expr;
Examples:
v_hiredate := '01-JAN-2001';
v_ename := 'Maduro';

Tipe Data Skalar
• Tahan nilai tunggal
• Tidak ada komponen internal

Jenis Basis data skalar
• CHAR [(maximum_length)]
• VARCHAR2 (maximum_length)
• LONG
• LONG RAW
• NUMBER [(precision, scale)]
• BINARY_INTEGER
• PLS_INTEGER
• BOOLEAN
• DATE
• TIMESTAMP
• TIMESTAMP WITH TIME ZONE
• TIMESTAMP WITH LOCAL TIME ZONE
• INTERVAL YEAR TO MONTH
• INTERVAL DAY TO SECOND

Deklarasi Variabel Skalar
contoh:
DECLARE
v_job VARCHAR2(9);
v_count BINARY_INTEGER := 0;
v_total_sal NUMBER(9,2) := 0;
v_orderdate DATE := SYSDATE + 7;
c_tax_rate CONSTANT NUMBER(3,2) := 8.25;
v_valid BOOLEAN NOT NULL := TRUE;
...

Atribut % TYPE
• Deklarasikan variabel menurut:
- Sebuah definisi database kolom
- Variabel lain yang sebelumnya dinyatakan
• Prefix% TYPE dengan:
- Tabel database dan kolom
- Nama variabel yang sebelumnya dinyatakan

Mendeklarasikan Variabel dengan Atribut %TYPE
Syntax:
identifier Table.column_name%TYPE;
Examples:
...
v_name employees.last_name%TYPE;
v_balance NUMBER(7,2);
v_min_balance v_balance%TYPE := 10;
...

Mendeklarasikan Variabel Boolean
• Hanya nilai TRUE, FALSE, dan NULL dapat diberikan ke sebuah variabel Boolean.
• Variabel yang dibandingkan oleh operator logika AND, OR, dan NOT.
• Variabel-variabel selalu menghasilkan TRUE, FALSE, atau NULL.
• Aritmatika, karakter, dan ekspresi tanggal dapat digunakan untuk mengembalikan nilai Boolean.


Variabel tipe data LOB
Book(CLOB)
Photo(BLOB)
Movie(BFILE)
NCLOB

Bind Variables
Server
O/S
Bind variable
Menggunakan Variabel Bind
Untuk reference variabel bind dalam PL / SQL, Anda harus memberi awalan nama dengan tanda titik dua (:).
Example:
VARIABLE g_salary NUMBER
BEGIN
SELECT salary
INTO :g_salary
FROM employees
WHERE employee_id = 178;
END;
/
PRINT g_salary

Variabel reference Non-PL/SQL
Simpan gaji tahunan menjadi * iSQL plus variable host.
: g_monthly_sal: = v_sal / 12;
• Reference non-PL/SQL variabel sebagai variabel host.
• Prefix reference dengan titik dua (:).

DBMS_OUTPUT.PUT_LINE
• Sebuah prosedur yang disediakan Oracle packaged
• Sebuah alternatif untuk menampilkan data dari sebuah blok PL / SQL
• Harus diaktifkan pada * iSQL Plus dengan
SET SERVEROUTPUT ON
SET SERVEROUTPUT ON
DEFINE p_annual_sal = 60000
DECLARE
v_sal NUMBER(9,2) := &p_annual_sal;
BEGIN
v_sal := v_sal/12;
DBMS_OUTPUT.PUT_LINE ('The monthly salary is ' ||
TO_CHAR(v_sal));
END;
/
 

Tidak ada komentar:

Posting Komentar