Training FUNCION ORACLE - bdp sql
+ STR() // Untuk membuat "Substring" atau nested = fungsi di dalam fungsi :
SQL> SELECT NAMA_PEGAWAI,
2 LOWER(CONCAT(SUBSTR(NAMA_PEGAWAI,1,4),'@INS.COM')) AS "EMAIL"
3 FROM PEGAWAI;
---------------------------------------------------
+ ABS() // Untuk mengembalikan nilai absolut TANPA TANDA -/+ DARI NILAI X.
SQL> SELECT 12 AS "NILAI1",ABS(12) AS "ABSOLUT1",
2 10 AS "NILAI1",ABS(12) AS "ABSOLUT2"
3 FROM DUAL;
NILAI1 ABSOLUT1 NILAI1 ABSOLUT2
---------- ---------- ---------- ----------
12 12 10 12
-------------------------------------------------
+ CEIL() // DIGUNAKAN UNTUK MELAKUKAN PEMBULAKAN KEATAS DARI NILAI DESIMAL.
SQL> SELECT CEIL(5.1),CEIL(5.9),CEIL(-5.9)
2 FROM DUAL;
CEIL(5.1) CEIL(5.9) CEIL(-5.9)
---------- ---------- ----------
6 6 -5
---------------------------------------------
+ FLOOR() //DIGUNAKAN UNTUK MELAKUKAN PEMBULATAN KEBAWAH DARI NILAI DESIMAL.
SQL> SELECT FLOOR(5.1),FLOOR(5.9), FLOOR(-5.9) FROM DUAL;
FLOOR(5.1) FLOOR(5.9) FLOOR(-5.9)
---------- ---------- -----------
5 5 -6
--------------------------------------------------------------
+ MOD() / FUNGSI MODULUS PADA DATA, UNTUK MENGGAMBIL NILAI SISA DARI HASIL PEMBAGIAN.
-> SIMPLE MOD() :
SQL> SELECT MOD(7,3) FROM DUAL;
MOD(7,3)
----------
1
------------
-> CONTOH LAIN DARI MOD():
SQL> SELECT NAMA_PEGAWAI, GAJI, MOD(GAJI,1000000) FROM PEGAWAI;
NAMA_PEGAWAI GAJI MOD(GAJI,1000000)
------------------------- ---------- -----------------
IRVAN SYAFE'I 7500000 500000
WIRA AULIA
PURNAMA RIYANTO 8070000 70000
RIDWAN SANUSI 4000000 0
POPY LUSIANA 5150000 150000
ESTI ARVINA 4500000 500000
LIA NURLITA 4000000 0
ADRIAN 4000000 0
DHILA LESTARI 1950000 950000
SUHARDIATNO 2500000 500000
AHMAD KOSASIH 2000000 0
NAMA_PEGAWAI GAJI MOD(GAJI,1000000)
------------------------- ---------- -----------------
AMAURA 1950000 950000
ASFIANTI 5000000 0
MEUTIA JOVI MAHARANI 22500000 500000
BUDI HARTADI 10500000 500000
RULLY SIANIPAR 10000000 0
EDWIN ASRUL 10500000 500000
NOVI SETIAWATI 11500000 500000
ARIS MURSITO 7000000 0
DHEA LUSIANA
SUSI INDIARTI 4900000 900000
ERTIN 5250000 250000
NAMA_PEGAWAI GAJI MOD(GAJI,1000000)
------------------------- ---------- -----------------
HERU KUTANTO 1400000 400000
ASWIR MATONDANG 1500000 500000
SUPRAYOGI 2600000 600000
25 rows selected.
+ NVL() // FUNGSI NVL() DI GUNAKAN UNTUK MENGATASI NILAI NULL PADA DATA.
->
SQL> SELECT NAMA_PEGAWAI, GAJI, PCT_KOMISI, GAJI+(PCT_KOMISI*GAJI) AS TOTAL FROM
PEGAWAI;
NAMA_PEGAWAI GAJI PCT_KOMISI TOTAL
------------------------- ---------- ---------- ----------
IRVAN SYAFE'I 7500000
WIRA AULIA
PURNAMA RIYANTO 8070000
RIDWAN SANUSI 4000000 10 44000000
POPY LUSIANA 5150000 10 56650000
ESTI ARVINA 4500000 17,5 83250000
LIA NURLITA 4000000
ADRIAN 4000000
DHILA LESTARI 1950000
SUHARDIATNO 2500000
AHMAD KOSASIH 2000000
NAMA_PEGAWAI GAJI PCT_KOMISI TOTAL
------------------------- ---------- ---------- ----------
AMAURA 1950000
ASFIANTI 5000000
MEUTIA JOVI MAHARANI 22500000
BUDI HARTADI 10500000
RULLY SIANIPAR 10000000
EDWIN ASRUL 10500000
NOVI SETIAWATI 11500000
ARIS MURSITO 7000000
DHEA LUSIANA
SUSI INDIARTI 4900000 12,5 66150000
ERTIN 5250000 15 84000000
NAMA_PEGAWAI GAJI PCT_KOMISI TOTAL
------------------------- ---------- ---------- ----------
HERU KUTANTO 1400000
ASWIR MATONDANG 1500000
SUPRAYOGI 2600000
25 rows selected.
--------------------
CONTOH 2:
Dengan ada NVL maka nilai NULL pada data total jadi ada lagi:
SQL> SELECT NAMA_PEGAWAI, GAJI, PCT_KOMISI, GAJI+(NVL(PCT_KOMISI,0*GAJI)) AS TOT
AL FROM PEGAWAI;
NAMA_PEGAWAI GAJI PCT_KOMISI TOTAL
------------------------- ---------- ---------- ----------
IRVAN SYAFE'I 7500000 7500000
WIRA AULIA
PURNAMA RIYANTO 8070000 8070000
RIDWAN SANUSI 4000000 10 4000010
POPY LUSIANA 5150000 10 5150010
ESTI ARVINA 4500000 17,5 4500017,5
LIA NURLITA 4000000 4000000
ADRIAN 4000000 4000000
DHILA LESTARI 1950000 1950000
SUHARDIATNO 2500000 2500000
AHMAD KOSASIH 2000000 2000000
NAMA_PEGAWAI GAJI PCT_KOMISI TOTAL
------------------------- ---------- ---------- ----------
AMAURA 1950000 1950000
ASFIANTI 5000000 5000000
MEUTIA JOVI MAHARANI 22500000 22500000
BUDI HARTADI 10500000 10500000
RULLY SIANIPAR 10000000 10000000
EDWIN ASRUL 10500000 10500000
NOVI SETIAWATI 11500000 11500000
ARIS MURSITO 7000000 7000000
DHEA LUSIANA
SUSI INDIARTI 4900000 12,5 4900012,5
ERTIN 5250000 15 5250015
NAMA_PEGAWAI GAJI PCT_KOMISI TOTAL
------------------------- ---------- ---------- ----------
HERU KUTANTO 1400000 1400000
ASWIR MATONDANG 1500000 1500000
SUPRAYOGI 2600000 2600000
25 rows selected.NVL2() AKAN MNGECEK DATA JIKA NULL
-----------------
+ NVL2() // NVL2() DI GUNAKAN UNTUK MENGECEK DATA JIKA ADA DATA NULL
SQL> SELECT NAMA_BRG, NVL2(IMAGE_ID,'ADA GAMBAR','TAK ADA GAMBAR') AS GAMBAR
2 FROM BARANG;
NAMA_BRG GAMBAR
------------------------- --------------
Abit AB9-Pro ADA GAMBAR
ASUS P5B Plus Viste Edt ADA GAMBAR
Asus Striker Extreme ADA GAMBAR
Biostar TForce %P965 ADA GAMBAR
Gigabyte GA_P31S3L ADA GAMBAR
Gigabyte GA_945PL_S3 ADA GAMBAR
Seagate 80GB TAK ADA GAMBAR
Seagate 160GB TAK ADA GAMBAR
Seagate 250GB TAK ADA GAMBAR
Seagate 500gb TAK ADA GAMBAR
Epson R-230 ADA GAMBAR
NAMA_BRG GAMBAR
------------------------- --------------
Epson LQ2180 ADA GAMBAR
HP Laserjet 1020 TAK ADA GAMBAR
HP Office Jet 4355 TAK ADA GAMBAR
HP DJ 1360 TAK ADA GAMBAR
Laserjet E120N TAK ADA GAMBAR
Laser E120 ADA GAMBAR
EPRO INT. ADA GAMBAR
GADMEI EXTERNAL ADA GAMBAR
GADMEI FOR LCD 5830 TAK ADA GAMBAR
K-WORLD CAPTURE INT+RMT TAK ADA GAMBAR
PIXELVIEW TV P7000 TAK ADA GAMBAR
NAMA_BRG GAMBAR
------------------------- --------------
PIXELVIEW PLAY TV PRO 3 TAK ADA GAMBAR
CHRONOS PCMCIA TV TUNER TAK ADA GAMBAR
ALTEC LEANSING BXR 1120 ADA GAMBAR
ALTEC LEANSING BXR 1121 ADA GAMBAR
ALTEC LEANSING 151 ADA GAMBAR
ALTEC LEANSING FX-6021 ADA GAMBAR
ALTEC LEANSING MX-5021 ADA GAMBAR
ALTEC LEANSING FX-5051 ADA GAMBAR
ALTEC LEANSING VS-4021 ADA GAMBAR
ALTEC LEANSING XT 2 ADA GAMBAR
32 rows selected.
RUMUS DI DALAM FUNGSI DATE:
DATE - DATE = DATE
DATE - ANGKA = DATE
DATE + ANGKA = DATE
DATE + DATE = ERROR
ex 1=
SQL> SELECT TO_DATE ('15-NOV-14','DD-MON-YY') - TO_DATE ('10-NOV-14','DD-MON-YY'
)
2 FROM DUAL;
TO_DATE('15-NOV-14','DD-MON-YY')-TO_DATE('10-NOV-14','DD-MON-YY')
-----------------------------------------------------------------
ex 2 = 5
SQL> SELECT TO_DATE('15-NOV-14','DD-MON-YY') - 15 FROM DUAL;
TO_DATE('15
-----------
31-OCT-2014
ex 3 =
SQL> SELECT TO_DATE('15-NOV-14','DD-MON-YY') + 27 FROM DUAL;
TO_DATE('15
-----------
12-DEC-2014
==============================
+ TO_DATE() / UNTUK MERUBAH FORMAT DATE:
ex 1 =
SQL> UPDATE PEGAWAI SET TGL_MASUK='01-MAR-99' WHERE ID_PEGAWAI=1001;
1 row updated.
ex 2 =
SQL> UPDATE PEGAWAI SET TGL_MASUK=TO_DATE('010299','DDMMYY') WHERE ID_PEGAWAI=10
01;
1 row updated.
===========================================
+ SYSDATE() / FUNGSI DATE
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-----------
25-APR-2014
------------------------
+ CURRENT_TIMESTAMP() / FUNGSI DATE PLUS ZONA WAKTU
SQL> SELECT CURRENT_TIMESTAMP FROM DUAL;
CURRENT_TIMESTAMP
---------------------------------------------------------------------------
25-04-2014 10.50.19,693000 +07:00
MASUK SQL ORACLE DARI COMMAND PROMP,
C:>SQLPLUS; //kalo ngga tau user password coba pakai cara yang bawah
OR
C:>SQLPLUS /AS SYSDBA;
Untuk anlock kasus yang lain seperti password user ;
From your command prompt, type
sqlplus "/ as sysdba"
Once logged in as SYSDBA, you need to unlock the SCOTT account
SQL> alter user scott account unlock;
SQL> grant connect, resource to scott;
Kalo bermasalah pada query di sql coba cek language yang di gunakan.
SQL> ALTER SESSION SET_LANGUAGE=ENGLISH;