ORACLE

Mengenal Blok PLSQL

Dalam PLSQL Oracle dikenal beberapa macam blok diantaranya :

1.Anonymous blok

Adalah suatu blok dasar dalam PLSQL.Berikut contoh pendeklarasian nya :

 <<label>>
DECLARE
	TYPE / item / FUNCTION / PROCEDURE declarations
BEGIN
      Statements
EXCEPTION
	EXCEPTION handlers
END label;

Berikut contoh penggunaan dari anonymous blok tersebut :

DECLARE
  number1 NUMBER(2);
  number2 NUMBER(2)    := 17;             -- value default
  text1   VARCHAR2(12) := 'Hello world';
  text2   DATE         := SYSDATE;        -- current date and time
BEGIN
  SELECT street_number
    INTO number1
    FROM address
   WHERE name = 'BILLA';
END;

2.Function

Adalah blok dalam PLSQL dimana blok ini harus mereturnkan/mengembalikan sebuah nilai balikan.Sehingga dalam penggunaannya biasanya di include kan kedalam SQL.

CREATE OR REPLACE FUNCTION <function_name> [(input/output variable declarations)] RETURN return_type
<IS|AS>
	[declaration block]
BEGIN
	<PL/SQL block WITH RETURN statement>
[EXCEPTION
	EXCEPTION block]
END;

Contoh penggunaan function :

CREATE OR REPLACE Function FindCourse
 ( name_in IN varchar2 )
 RETURN number
 IS
 cnumber number;
cursor c1 is
 select course_number
 from courses_tbl
 where course_name = name_in;

 BEGIN
open c1;
 fetch c1 into cnumber;

 if c1%notfound then
 cnumber := 9999;
 end if;

 close c1;
RETURN cnumber;
EXCEPTION
 WHEN OTHERS THEN
 raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
 END;

Kemudian diterapkan dalam SQL seperti di bawah ini :
select course_name, FindCourse(course_name) as course_id
 from courses
 where subject = 'Mathematics';

3.Procedure

Adalah sebuah blok dalam PLSQL dimana secara dasar memiliki fungsi yang sama dengan function hanya saja procedure tidak bisa digunakan langsung atau di embedd kan kedalam SQL dan tidak memiliki return value atau nilai balikan.

      CREATE [OR REPLACE] PROCEDURE procedure_name
      [ (parameter [,parameter]) ]
      IS
      [declaration_section]
      BEGIN
      executable_section
      [EXCEPTION
      exception_section]
      END [procedure_name];

Contoh penggunaan :

CREATE OR REPLACE Procedure UpdateCourse
 ( name_in IN varchar2 )
 IS
 cnumber number;
cursor c1 is
 select course_number
 from courses_tbl
 where course_name = name_in;

 BEGIN
open c1;
 fetch c1 into cnumber;

 if c1%notfound then
 cnumber := 9999;
 end if;
insert into student_courses
 ( course_name,
 course_number)
 values ( name_in,
 cnumber );
commit;
close c1;
EXCEPTION
 WHEN OTHERS THEN
 raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
 END;

Kemudian cara pemanggilannya adalah sebagai berikut :
EXEC UpdateCourse(paramter);

Demikian dan semoga bermanfaat.

Standar

One thought on “Mengenal Blok PLSQL

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

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