Oracle Dibangun di Fungsi

Ada dua jenis fungsi di Oracle.
1) Fungsi Single Row: Satu baris atau skalar fungsi mengembalikan nilai untuk setiap baris yang diolah dalam query.
2) Kelompok Fungsi: Fungsi-fungsi ini kelompok baris data berdasarkan nilai-nilai yang dikembalikan oleh query. Hal ini dibahas dalam Fungsi SQL GROUP. Fungsi kelompok digunakan untuk menghitung nilai-nilai agregat seperti jumlah atau rata-rata, yang kembali hanya satu keseluruhan atau satu nilai rata-rata setelah pengolahan sekelompok baris.

Ada empat jenis fungsi baris tunggal. Mereka adalah:
1) Fungsi Numeric: Ini adalah fungsi yang menerima input numerik dan mengembalikan nilai-nilai numerik.
2) Karakter atau Teks Fungsi: Ini adalah fungsi yang menerima input karakter dan dapat mengembalikan baik karakter dan nilai-nilai nomor.
3) Tanggal Fungsi: Ini adalah fungsi yang mengambil nilai-nilai yang dari datatype DATE sebagai input dan mengembalikan nilai-nilai datatype DATE, kecuali untuk fungsi MONTHS_BETWEEN, yang mengembalikan nomor.
4) Konversi Fungsi: Ini adalah fungsi yang membantu kita untuk mengkonversi nilai dalam satu bentuk ke bentuk lain. Misalnya: nilai null menjadi nilai sebenarnya, atau nilai dari satu datatype ke datatype lain seperti NVL, TO_CHAR, TO_NUMBER, TO_DATE dll

Anda dapat menggabungkan lebih dari satu fungsi bersama-sama dalam sebuah ekspresi. Hal ini dikenal sebagai sarang fungsi.

Apa yang dimaksud dengan Tabel DUAL di Oracle?
Ini adalah satu baris dan kolom tabel boneka tunggal disediakan oleh oracle. Ini digunakan untuk melakukan perhitungan matematis tanpa menggunakan meja.

Select * from DUAL

Output:

DUMMY
-------
X

Select 777 * 888 from Dual

Output:

777 * 888
---------
689.976

1) Fungsi Numeric:

Fungsi numerik yang digunakan untuk melakukan operasi pada angka. Mereka menerima nilai-nilai numerik sebagai masukan dan kembali nilai-nilai numerik sebagai output. Beberapa fungsi Numeric adalah:

Function Name Return Value
ABS (x) Absolute value of the number 'x'
CEIL (x) Integer value that is Greater than or equal to the number 'x'
FLOOR (x) Integer value that is Less than or equal to the number 'x'
TRUNC (x, y) Truncates value of number 'x' up to 'y' decimal places
ROUND (x, y) Rounded off value of the number 'x' up to the number 'y' decimal places

Contoh berikut menjelaskan penggunaan fungsi numerik di atas

Function Name Examples Return Value
ABS (x) ABS (1)
ABS (-1)
1
-1
CEIL (x) CEIL (2.83)
CEIL (2.49)
CEIL (-1.6)
3
3
-1
FLOOR (x) FLOOR (2.83)
FLOOR (2.49)
FLOOR (-1.6)
2
2
-2
TRUNC (x, y) ROUND (125.456, 1)
ROUND (125.456, 0)
ROUND (124.456, -1)
125.4
125
120
ROUND (x, y) TRUNC (140.234, 2)
TRUNC (-54, 1)
TRUNC (5.7)
TRUNC (142, -1)
140.23
54
5
140

Fungsi ini hanya dapat digunakan pada kolom basis data.

Untuk Contoh: Mari kita pertimbangkan tabel produk yang digunakan dalam sql bergabung. Kita dapat menggunakan ROUND membulatkan unit_price ke bilangan bulat terdekat, jika setiap produk memiliki harga di fraksi.

SELECT ROUND (unit_price) FROM product;

2) Karakter atau Teks Fungsi:

Karakter atau teks fungsi yang digunakan untuk memanipulasi string teks. Mereka menerima string atau karakter sebagai masukan dan dapat kembali baik karakter dan nilai-nilai nomor sebagai output.

Beberapa karakter atau fungsi teks sebagai diberikan di bawah:

Function Name Return Value
LOWER (string_value) All the letters in 'string_value' is converted to lowercase.
UPPER (string_value) All the letters in 'string_value' is converted to uppercase.
INITCAP (string_value) All the letters in 'string_value' is converted to mixed case.
LTRIM (string_value, trim_text) All occurrences of 'trim_text' is removed from the left of 'string_value'.
RTRIM (string_value, trim_text) All occurrences of 'trim_text' is removed from the right of 'string_value' .
TRIM (trim_text FROM string_value) All occurrences of 'trim_text' from the left and right of 'string_value' , 'trim_text' can also be only one character long .
SUBSTR (string_value, m, n) Returns 'n' number of characters from 'string_value' starting from the 'm' position.
LENGTH (string_value) Number of characters in 'string_value' in returned.
LPAD (string_value, n, pad_value) Returns 'string_value' left-padded with 'pad_value' . The length of the whole string will be of 'n' characters.
RPAD (string_value, n, pad_value) Returns 'string_value' right-padded with 'pad_value' . The length of the whole string will be of 'n' characters.

Sebagai contoh, kita dapat menggunakan di atas UPPER () fungsi teks dengan nilai kolom sebagai berikut.

SELECT UPPER (product_name) FROM product;

Contoh berikut menjelaskan penggunaan karakter di atas atau fungsi teks

Function Name Examples Return Value
LOWER(string_value) LOWER('Good Morning') good morning
UPPER(string_value) UPPER('Good Morning') GOOD MORNING
INITCAP(string_value) INITCAP('GOOD MORNING') Good Morning
LTRIM(string_value, trim_text) LTRIM ('Good Morning', 'Good) Morning
RTRIM (string_value, trim_text) RTRIM ('Good Morning', ' Morning') Good
TRIM (trim_text FROM string_value) TRIM ('o' FROM 'Good Morning') Gd Mrning
SUBSTR (string_value, m, n) SUBSTR ('Good Morning', 6, 7) Morning
LENGTH (string_value) LENGTH ('Good Morning') 12
LPAD (string_value, n, pad_value) LPAD ('Good', 6, '*') **Good
RPAD (string_value, n, pad_value) RPAD ('Good', 6, '*') Good**

3) Tanggal Fungsi:

Ini adalah fungsi yang mengambil nilai-nilai yang dari datatype DATE sebagai input dan mengembalikan nilai tipe data DATE, kecuali untuk fungsi MONTHS_BETWEEN, yang mengembalikan nomor sebagai output.

Beberapa fungsi tanggal adalah sebagai diberikan di bawah ini.

Function Name Return Value
ADD_MONTHS (date, n) Returns a date value after adding 'n' months to the date 'x'.
MONTHS_BETWEEN (x1, x2) Returns the number of months between dates x1 and x2.
ROUND (x, date_format) Returns the date 'x' rounded off to the nearest century, year, month, date, hour, minute, or second as specified by the 'date_format'.
TRUNC (x, date_format) Returns the date 'x' lesser than or equal to the nearest century, year, month, date, hour, minute, or second as specified by the 'date_format'.
NEXT_DAY (x, week_day) Returns the next date of the 'week_day' on or after the date 'x' occurs.
LAST_DAY (x) It is used to determine the number of days remaining in a month from the date 'x' specified.
SYSDATE Returns the systems current date and time.
NEW_TIME (x, zone1, zone2) Returns the date and time in zone2 if date 'x' represents the time in zone1.

Tabel di bawah memberikan contoh untuk fungsi di atas

Function Name Examples Return Value
ADD_MONTHS ( ) ADD_MONTHS ('16-Sep-81', 3) 16-Dec-81
MONTHS_BETWEEN( ) MONTHS_BETWEEN ('16-Sep-81', '16-Dec-81') 3
NEXT_DAY( ) NEXT_DAY ('01-Jun-08', 'Wednesday') 04-JUN-08
LAST_DAY( ) LAST_DAY ('01-Jun-08') 30-Jun-08
NEW_TIME( ) NEW_TIME ('01-Jun-08', 'IST', 'EST') 31-May-08

4) Konversi Fungsi:

Ini adalah fungsi yang membantu kita untuk mengkonversi nilai dalam satu bentuk ke bentuk lain. Untuk Ex: nilai null menjadi nilai sebenarnya, atau nilai dari satu datatype ke datatype lain seperti NVL, TO_CHAR, TO_NUMBER, TO_DATE.

Beberapa fungsi konversi tersedia dalam oracle adalah:

Function Name Return Value
TO_CHAR (x [,y]) Converts Numeric and Date values to a character string value. It cannot be used for calculations since it is a string value.
TO_DATE (x [, date_format]) Converts a valid Numeric and Character values to a Date value. Date is formatted to the format specified by 'date_format'.
NVL (x, y) If 'x' is NULL, replace it with 'y'. 'x' and 'y' must be of the same datatype.
DECODE (a, b, c, d, e, default_value) Checks the value of 'a', if a = b, then returns 'c'. If a = d, then returns 'e'. Else, returns default_value.

Tabel di bawah memberikan contoh untuk fungsi di atas

Function Name Examples Return Value
TO_CHAR () TO_CHAR (3000, '$9999')
TO_CHAR (SYSDATE, 'Day, Month YYYY')
$3000
Monday, June 2008
TO_DATE () TO_DATE ('01-Jun-08') 01-Jun-08
NVL () NVL (null, 1) 1