FUNCTION & STORED PROCEDURE

67
FUNCTION & STORED PROCEDURE Siti Mukaromah,S.Kom, MCP. 1

description

FUNCTION & STORED PROCEDURE. Siti Mukaromah,S.Kom, MCP. Function. - PowerPoint PPT Presentation

Transcript of FUNCTION & STORED PROCEDURE

Page 1: FUNCTION &  STORED PROCEDURE

1

FUNCTION & STORED PROCEDURE

Siti Mukaromah,S.Kom, MCP.

Page 2: FUNCTION &  STORED PROCEDURE

2

Function

Page 3: FUNCTION &  STORED PROCEDURE

3

Fungsi mirip dengan operator bahwa mereka memanipulasi item data dan mengembalikan hasilnya. Fungsi berbeda dari operator dalam format argumen mereka. Format ini memungkinkan mereka untuk beroperasi pada nol, satu, dua, atau lebih argumen:

fungsi (argumen, argumen, ...)

Fungsi tanpa argumen biasanya mengembalikan nilai yang sama untuk setiap baris.

Page 4: FUNCTION &  STORED PROCEDURE

4

Fungsi SQL dibangun ke dalam Oracle Database dan tersedia untuk digunakan dalam berbagai statement SQL yang sesuai. Jangan bingung dengan fungsi-fungsi user-defined SQL yang ditulis dalam PL/SQL.

Page 5: FUNCTION &  STORED PROCEDURE

5

Dalam diagram sintaks untuk fungsi-fungsi SQL, argumen ditandai dengan datatypes mereka. Ketika parameter fungsi muncul dalam sintaks SQL, gantikan dengan salah satu fungsi yang diuraikan dalam bagian ini. Fungsi dikelompokkan oleh datatypes dari argumen mereka dan return value-nya.

Page 6: FUNCTION &  STORED PROCEDURE

6

Sintaks menunjukkan kategori dari fungsi sebagai berikut:

Function Single Row Function

Page 7: FUNCTION &  STORED PROCEDURE

7

Bagian-bagian yang mengikuti daftar built-in fungsi SQL pada masing-masing kelompok diilustrasikan dalam diagram tersebut kecuali fungsi user-defined. Semua built-in fungsi SQL ini kemudian dijelaskan dalam urutan abjad.

Page 8: FUNCTION &  STORED PROCEDURE

8

Single Row Function mengembalikan hasil tunggal untuk setiap baris dari sebuah query tabel atau view. Fungsi-fungsi tersebut dapat muncul dalam daftar pilih, klausa WHERE, START WITH dan klausa CONNECT BY, serta klausa HAVING.

Single Row Function

Page 9: FUNCTION &  STORED PROCEDURE

9

Numeric Functions menerima input numerik dan mengembalikan nilai numerik. Kebanyakan Numeric Functions yang mengembalikan nilai NUMBER yang akurat sampai 38 digit desimal. Fungsi transendental COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, dan TANH akurat sampai 36 digit desimal. Fungsi transendental ACOS, ASIN, ATAN, dan ATAN2 akurat sampai 30 digit desimal.

Numeric Functions

Page 10: FUNCTION &  STORED PROCEDURE

10

ABS ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSH

EXP FLOOR LN LOG MOD NANVL POWER REMAINDER ROUND

(number)

SIGN SIN SINH SQRT TAN TANH TRUNC

(number) WIDTH_BUCK

ET

Fungsi numerik adalah:

Page 11: FUNCTION &  STORED PROCEDURE

11

Karakter fungsi yang mengembalikan nilai karakter, nilai pengembaliannya dari datatypes berikut kecuali dinyatakan dibuktikan:

Jika argumen input CHAR atau VARCHAR2, maka nilai yang dikembalikan VARCHAR2.

Jika argumen input NCHAR atau NVARCHAR2, maka nilai yang dikembalikan NVARCHAR2.

Character Functions Returning Character Values

Page 12: FUNCTION &  STORED PROCEDURE

12

Panjang (length) nilai yang dikembalikan oleh fungsi ini dibatasi oleh panjang (length) maksimum dari datatype yang dikembalikan.

Untuk fungsi yang mengembalikan CHAR atau VARCHAR2, jika panjang (length) dari nilai pengembalian melebihi batas, Oracle Database akan memotong dan mengembalikan hasilnya tanpa pesan kesalahan.

Untuk fungsi yang mengembalikan nilai CLOB, jika panjang melebihi batas nilai-nilai pengembalian, Oracle akan menampilkan kesalahan dan tidak ada pengembalian data.

Page 13: FUNCTION &  STORED PROCEDURE

13

CHR CONCAT INITCAP LOWER LPAD LTRIM NLS_INITCAP NLS_LOWER NLSSORT NLS_UPPER REGEXP_REPLACE

REGEXP_SUBSTR REPLACE RPAD RTRIM SOUNDEX SUBSTR TRANSLATE TREAT TRIM UPPER

Fungsi karakter yang mengembalikan nilai karakter adalah:

Page 14: FUNCTION &  STORED PROCEDURE

14

Fungsi karakter NLS mengembalikan informasi tentang karakter set. Fungsi Karakter NLS adalah:

NLS_CHARSET_DECL_LEN NLS_CHARSET_ID NLS_CHARSET_NAME

NLS Character Functions

Page 15: FUNCTION &  STORED PROCEDURE

15

Karakter fungsi yang mengembalikan nilai angka (number) dapat mengambil sebagai argumen mereka setiap datatype karakter.

Fungsi karakter yang mengembalikan nilai-nilai angka (number) :

ASCII INSTR LENGTH REGEXP_INSTR

Character Functions Returning Number Values

Page 16: FUNCTION &  STORED PROCEDURE

16

Fungsi datetime (Datetime Functions) beroperasi pada nilai-nilai tanggal (DATE), timestamp (TIMESTAMP, TIMESTAMP WITH TIME ZONE, dan TIMESTAMP WITH LOCAL TIME ZONE), dan interval (INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH).

Beberapa fungsi datetime dirancang untuk datatype Oracle DATE (ADD_MONTHS, CURRENT_DATE, LAST_DAY, NEW_TIME, dan NEXT_DAY). Jika Anda memberikan nilai timestamp sebagai argumen mereka, Oracle Database secara internal mengubah tipe input menjadi nilai DATE dan mengembalikan nilai DATE. Pengecualian adalah fungsi MONTHS_BETWEEN, yang mengembalikan angka, dan fungsi ROUND dan TRUNC, yang tidak menerima timestamp atau interval nilai sama sekali.

Fungsi datetime lainnya dirancang untuk menerima salah satu dari tiga jenis data (tanggal, timestamp, dan interval) dan untuk mengembalikan nilai salah satu jenis.

Datetime Functions

Page 17: FUNCTION &  STORED PROCEDURE

17

ADD_MONTHS CURRENT_DATE CURRENT_TIMESTAMP DBTIMEZONE EXTRACT (datetime) FROM_TZ LAST_DAY LOCALTIMESTAMP MONTHS_BETWEEN NEW_TIME NEXT_DAY NUMTODSINTERVAL NUMTOYMINTERVAL

ROUND (date) SESSIONTIMEZONE SYS_EXTRACT_UTC SYSDATE SYSTIMESTAMP TO_CHAR (datetime) TO_TIMESTAMP TO_TIMESTAMP_TZ TO_DSINTERVAL TO_YMINTERVAL TRUNC (date) TZ_OFFSET

Fungsi Datetime adalah:

Page 18: FUNCTION &  STORED PROCEDURE

18

Fungsi perbandingan umum yang menentukan nilai terbesar dan atau paling kecil dari satu set nilai.

Fungsi perbandingan umum adalah: GREATEST LEAST

General Comparison Functions

Page 19: FUNCTION &  STORED PROCEDURE

19

Conversion Functions (fungsi Konversi) mengkonversi nilai dari satu datatype ke yang lain. Secara umum, bentuk nama fungsi mengikuti konvensi datatype TO datatype. Datatype yang pertama adalah datatype masukan (input datatype). Datatype kedua adalah output datatype.

Conversion Functions

Page 20: FUNCTION &  STORED PROCEDURE

20

ASCIISTR BIN_TO_NUM CAST CHARTOROWID COMPOSE CONVERT DECOMPOSE HEXTORAW NUMTODSINTERVAL NUMTOYMINTERVAL RAWTOHEX RAWTONHEX ROWIDTOCHAR ROWIDTONCHAR SCN_TO_TIMESTAMP

TIMESTAMP_TO_SCN TO_BINARY_DOUBLE TO_BINARY_FLOAT TO_CHAR

(character) TO_CHAR (datetime) TO_CHAR (number) TO_CLOB TO_DATE TO_DSINTERVAL TO_LOB TO_MULTI_BYTE TO_NCHAR

(character) TO_NCHAR

(datetime) TO_NCHAR

(number) TO_NCLOB TO_NUMBER TO_DSINTERVAL TO_SINGLE_BYTE TO_TIMESTAMP TO_TIMESTAMP_TZ TO_YMINTERVAL TO_YMINTERVAL TRANSLATE ...

USING UNISTR

Fungsi konversi SQL adalah:

Page 21: FUNCTION &  STORED PROCEDURE

21

Large Object Functions beroperasi pada LOBs.

Fungsi Large Object Functions adalah: BFILENAME EMPTY_BLOB, EMPTY_CLOB

Large Object Functions

Page 22: FUNCTION &  STORED PROCEDURE

22

Collection Functions beroperasi pada tabel nested dan varrays.

Fungsi SQLCollection Functions adalah: CARDINALITY COLLECT POWERMULTISET POWERMULTISET_BY_CARDINALITY SET

Collection Functions

Page 23: FUNCTION &  STORED PROCEDURE

23

Hierarchical Function menerapkan informasi jalur hirarkis pada set hasil.

SYS_CONNECT_BY_PATH

Hierarchical Function

Page 24: FUNCTION &  STORED PROCEDURE

24

fungsi data mining yang beroperasi pada model yang telah dibangun dengan menggunakan paket DBMS_DATA_MINING atau Oracle Data Mining Java API.

Fungsi data mining SQL adalah: CLUSTER_ID CLUSTER_PROBABILITY CLUSTER_SET FEATURE_ID FEATURE_SET FEATURE_VALUE PREDICTION PREDICTION_COST PREDICTION_DETAILS PREDICTION_PROBABILITY PREDICTION_SET

Data Mining Functions

Page 25: FUNCTION &  STORED PROCEDURE

25

Fungsi XML beroperasi pada dokumen atau fragmen XML .

XML Functions

Page 26: FUNCTION &  STORED PROCEDURE

26

APPENDCHILDXML DELETEXML DEPTH EXTRACT (XML) EXISTSNODE EXTRACTVALUE INSERTCHILDXML INSERTXMLBEFORE PATH SYS_DBURIGEN SYS_XMLAGG SYS_XMLGEN UPDATEXML XMLAGG

XMLCDATA XMLCOLATTVAL XMLCOMMENT XMLCONCAT XMLFOREST XMLPARSE XMLPI XMLQUERY XMLROOT XMLSEQUENCE XMLSERIALIZE XMLTABLE XMLTRANSFORM

XML SQL fungsi:

Page 27: FUNCTION &  STORED PROCEDURE

27

fungsi encoding dan decoding memungkinkan Anda memeriksa dan decode (membaca kode) data dalam database.

DECODE DUMP ORA_HASH VSIZE

Encoding and Decoding Functions

Page 28: FUNCTION &  STORED PROCEDURE

28

NULL-Related Functions memfasilitasi penanganan null

NULL-Related Functions adalah: COALESCE LNNVL NULLIF NVL NVL2

NULL-Related Functions

Page 29: FUNCTION &  STORED PROCEDURE

29

Lingkungan dan fungsi pengenal memberikan informasi tentang instance dan sesi.

SYS_CONTEXT SYS_GUID SYS_TYPEID UID USER USERENV

Environment and Identifier Functions

Page 30: FUNCTION &  STORED PROCEDURE

30

Fungsi Aggregate mengembalikan baris tunggal hasil berdasarkan kelompok baris, bukan pada baris tunggal. Fungsi Aggregate dapat muncul dalam daftar select dan dalam klausa ORDER BY dan HAVING. Mereka umumnya digunakan dengan klausa GROUP BY dalam perintah SELECT, di mana Oracle Database membagi baris dari sebuah tabel query atau view ke dalam grup. Dalam query yang mengandung klausa GROUP BY, unsur-unsur dari daftar select bisa berupa Fungsi Aggregate , ekspresi GROUP BY, konstanta, atau ekspresi yang melibatkan salah satunya. Oracle menerapkan fungsi aggregate untuk setiap kelompok baris dan mengembalikan hasil baris tunggal untuk setiap kelompok.

Aggregate Functions

Page 31: FUNCTION &  STORED PROCEDURE

31

Jika Anda menghilangkan klausa GROUP BY, maka Oracle menerapkan fungsi aggregate dalam daftar select untuk semua baris dalam tabel query atau view. Anda menggunakan fungsi aggregate pada klausa HAVING untuk menghilangkan kelompok-kelompok dari output berdasarkan hasil fungsi aggregate, bukan pada nilai-nilai individu baris tabel query atau view.

Page 32: FUNCTION &  STORED PROCEDURE

32

Model Functions dapat digunakan hanya dalam model_clause dari SELECT.

Fungsi model: CV ITERATION_NUMBER PRESENTNNV PRESENTV PREVIOUS

Model Functions

Page 33: FUNCTION &  STORED PROCEDURE

33

Di Oracle Anda dapat membuat fungsi sendiri

Syntax untuk membuat Function:

Oracle/PLSQL: Creating Functions

Page 34: FUNCTION &  STORED PROCEDURE

34

Bila Anda membuat prosedur atau fungsi, Anda dapat menentukan parameter. Ada tiga jenis parameter yang dapat dideklarasikan:

1. IN - Parameter yang dapat direferensikan oleh prosedur atau fungsi. Nilai parameter tersebut tidak dapat ditimpa oleh prosedur atau fungsi.

2. OUT - Parameter yang tidak dapat direferensikan oleh prosedur atau fungsi, tetapi nilai parameter dapat ditimpa oleh prosedur atau fungsi.

3. IN OUT - Parameter yang dapat direferensikan oleh prosedur atau fungsi dan nilai parameter dapat ditimpa oleh prosedur atau fungsi.

Page 35: FUNCTION &  STORED PROCEDURE

35

Functions Without Parameters Simple Function Creation

Page 36: FUNCTION &  STORED PROCEDURE

36

Page 37: FUNCTION &  STORED PROCEDURE

37

Function Without Parameters Used In A SELECT Clause

Page 38: FUNCTION &  STORED PROCEDURE

38

Page 39: FUNCTION &  STORED PROCEDURE

39

Simple Function Used In An INSERT Statement

Page 40: FUNCTION &  STORED PROCEDURE

40

Simple Function Used In A WHERE Clause

Page 41: FUNCTION &  STORED PROCEDURE

41

Simple Function Used In A View

Page 42: FUNCTION &  STORED PROCEDURE

42

Fungsi untuk menentukan apakah sebuah string memiliki format nomor social security yang valid

Functions With Parameters

Page 43: FUNCTION &  STORED PROCEDURE

43

Page 44: FUNCTION &  STORED PROCEDURE

44

Page 45: FUNCTION &  STORED PROCEDURE

45

Function with OUT parameter

Page 46: FUNCTION &  STORED PROCEDURE

46

Function with IN OUT parameter

Page 47: FUNCTION &  STORED PROCEDURE

47

Page 48: FUNCTION &  STORED PROCEDURE

48

Stored Procedure

Page 49: FUNCTION &  STORED PROCEDURE

49

Membuat prosedur PL/SQL tanpa paramater

Page 50: FUNCTION &  STORED PROCEDURE

50

Contoh penerapan dalam Oracle SQL*Plus bisa Anda lihat pada gambar beriktu ini :

Page 51: FUNCTION &  STORED PROCEDURE

51

Dan untuk melihat hasilnya dari prompt SQL ketikkan EXECUTE nama-prosedure. Atau bisa Anda singkat menjadi EXEC nama-prosedure.

Page 52: FUNCTION &  STORED PROCEDURE

52

Jika saat menjalankan PL/SQL di SQL*Plus Anda tidak mendapatkan hasil apa-apa di layar (dengan catatan tidak ada kesalahan kode program) maka tuliskan sintak berikut ini di prompt SQL.

Page 53: FUNCTION &  STORED PROCEDURE

53

Jika kode program Anda cukup panjang atau jika terjadi kesalahan dan ingin memperbaikinya ketikkan “ED” pada prompt SQL setelah itu akan muncul sebuah editor untuk mengedit sintak terakhir yang Anda tuliskan sepertipada gambar dibawah ini.

Page 54: FUNCTION &  STORED PROCEDURE

54

Untuk kembali ke PL/SQL tekan tombol [ALT+F] lanjutkan dengan menekan tombol [X] jika muncul pertanyaan pilih [Yes].

Page 55: FUNCTION &  STORED PROCEDURE

55

Semua contoh diatas adalah prosedur yang tidak menggunakan parameter, dimana nilai yang diproses sudah ditentukan dan berada di dalam prosedur tersebut. Ada juga prosedur yang sifatnya dinamis dimana nilainya bisa kita ubah sesuai dengan kondisi yang diinginkan. Agar bisa berfungsi seperti itu prosedur tersebut harus menggunakan sebuah paramater sebagai penerima inputan dari user.

Membuat prosedur PL/SQL dengan parameter

Page 56: FUNCTION &  STORED PROCEDURE

56

Single IN Parameter

Page 57: FUNCTION &  STORED PROCEDURE

57

Contoh penerapannya bisa Anda lihat di bawah ini :

Untuk cara pembuatan sama dengan prosedur yang tidak menggunakan parameter.

Page 58: FUNCTION &  STORED PROCEDURE

58

Untuk menjalankan prosedure tersebut, pada prompt SQL tuliskan seperti di bawah ini :

Page 59: FUNCTION &  STORED PROCEDURE

59

OUT Parameter

Page 60: FUNCTION &  STORED PROCEDURE

60

Page 61: FUNCTION &  STORED PROCEDURE

61

Page 62: FUNCTION &  STORED PROCEDURE

62

IN OUT Parameter

Page 63: FUNCTION &  STORED PROCEDURE

63

Page 64: FUNCTION &  STORED PROCEDURE

64

Multiple Parameters

Page 65: FUNCTION &  STORED PROCEDURE

65

Page 66: FUNCTION &  STORED PROCEDURE

66

1. Jelaskan perbedaan antara fungsi dan prosedur!

2. Buat fungsi/prosedur yang bisa menampilkan pesan bahwa bilangan yang diinputkan adalah bilangan genap atau ganjil!

3. Buat fungsi/prosedur untuk menghitung jumlah panjang karakter nama yang di-inputkan! Handle kesalahan jika yang dimasukkan bukan merupakan karakter

TUGAS

Page 67: FUNCTION &  STORED PROCEDURE

67

To: [email protected] Subject: T2PBD_NIM_Nama Lengkap

Contoh penulisan subject: T2PBD_08410100001_Agung

Firmansyah

Dikumpulkan paling lambat: Hari Selasa, 7 September 2010 Pukul

24.00

Format Pengiriman Tugas