Function

Function

Function adalah jenis PL/SQL block yang menghasilkan satu nilai. Secara umum, function digunakan melakukan perhitungan, mengecek eksistensi dan kevalidan suatu data. Function bisa dilibatkan dalam expresi. Function bisa disimpan dalam database sebagai object schema, sehingga suatu function bisa digunakan berulangkali tanpa harus melakukan parsing dan compile ulang.

CREATE [OR REPLACE] FUNCTION function_name
[(parameter1 [mode1] datatype1,
RETURN datatype
IS | AS
PL/SQL block;
 

Parameter yang berlaku pada function hanya parameter IN.

Privilege yang dibutuhkan CREATE PROCEDURE atau CREATE ANY PROCEDURE
Untuk demo tentang function connect sebagai user SCOTT.
Gunakan tabel EMP, buat function yang mengembalikan SAL dari EMPNO yang dikirim.

-- periksa struktur tabel EMP
SQL> DESC emp;
 Name                    Null?    Type
 ----------------------- -------- -------------
 EMPNO                   NOT NULL NUMBER(4)
 ENAME                            VARCHAR2(10)
 JOB                              VARCHAR2(9)
 MGR                              NUMBER(4)
 HIREDATE                         DATE
 SAL                              NUMBER(7,2)
 COMM                             NUMBER(7,2)
 DEPTNO                           NUMBER(2)
CREATE OR REPLACE FUNCTION GET_SAL  (P_EMPNO   NUMBER)
RETURN NUMBER
AS
   V_SAL    NUMBER(10);
BEGIN
  SELECT SAL INTO V_SAL
  FROM EMP  WHERE EMPNO=P_EMPNO;
  -- Nilai yang dikeluarkan
  RETURN V_SAL;
END;
/

Berbagai cara menjalankan Function.
– Menjalankan function sebagai parameter dari suatu procedure

SQL> SET SERVEROUTPUT ON
SQL> EXECUTE DBMS_OUTPUT.PUT_LINE(GET_GAJI(7369));
800

– Menjalankan funtion sebagai bagian dari ekspresi

SQL> SET AUTOPRINT ON
SQL> VARIABLE G_HASIL NUMBER;
SQL> EXECUTE :G_HASIL := GET_GAJI(7788);
PL/SQL procedure successfully completed.
G_HASIL
----------
3000 

– Menjalankan function pada perintah SELECT

SQL> SELECT EMPNO,ENAME,GET_SAL(EMPNO) FROM EMP;
       NIP NAMA       GET_SAL(EMPNO)
---------- ---------- -------------
      7369 SMITH                800   
      7499 ALLEN               1600
      7521 WARD                1250
      7566 JONES               2975
      7654 MARTIN              1250

Contoh lain function

CREATE OR REPLACE FUNCTION PAJAK(P_SAL NUMBER, PCT NUMBER)
RETURN NUMBER
AS
BEGIN
   RETURN (P_SAL * (PCT/100));
END;
/
SQL> SELECT EMPNO,ENAME,SAL,PAJAK(SAL,10)
2  FROM EMP;
     EMPNO ENAME             SAL PAJAK(SAL,10)
---------- ---------- ---------- -------------
      7369 SMITH             800            80
      7499 ALLEN            1600           160
      7521 WARD             1250           125
      7566 JONES            2975         297.5
      7654 MARTIN           1250           125
      7698 BLAKE            2850           285
      7782 CLARK            2450           245
      7788 SCOTT            3000           300
      7839 KING             5000           500

Demikian bahasan tentang Function
Terimakasih
Bambang Sutejo

Tags: , ,

This entry was posted on Saturday, February 21st, 2009 at 9:20 am and is filed under 3. PL/SQL. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 Responses to “Function”

asep siddiq August 7th, 2009 at 11:15 pm

terima kasih atas ilmunya,saya harap ilmu anda akan bertambah sebanyak mungkin.dan mungkin dapat ditambah lagi,semaga saudara dalam keadaan sehat walafiat ami………………..n
dan banyak rejeki yang berlimpah luah

ysr October 30th, 2009 at 9:56 am

apakah ada yang bisa bantu bagaimana caranya menjadikan ROw ke Column menggunakan Query Oracle
Tgl | Element | value
——————————–
1/12 | CO | 3.9
2/12 | CO | 3.2
3/12 | CO | 9.2
1/12 | FE | 8.9
2/12 | FE | 5.3
3/12 | FE | 6.0
menjadi
Tgl | CO | FE
————————-
1/12 | 3.9 | 8.9
2/12 | 3.2 | 5.3
3/12 | 9.2 | 6.0
terima kasih
Salam,
Yusran

yadot November 8th, 2009 at 5:23 am

terimakasih atas artikelnya… semoga dibalas dengan kebaikan oleh Tuhan yang maha esa…….amin..

Leave a Reply