Sammy30
4/25/2014 - 4:25 AM

Training FUNCION ORACLE - bdp sql

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;