October 25, 2012

UNION atau UNION ALL

Kenapa menggunakan UNION ?
Kenapa menggunakan UNION ALL ?

UNION ALL digunakan apabila kita ingin mendapatkan semua nilai balik dari table yang digunakan pada query yang kita eksekusi. Sedangkan untuk UNION akan memberikan nilai balik yang distinct dari setiap record yang tampil, maka pada saat query kita menggunakan UNION akan terjadi proses pengecekkan data (unique) yang akan ditampilkan.

Kapan UNION digunakan ? Kapan UNION ALL digunakan ? silahkan masing-masing dari kita memutuskannya sesuai dengan kebutuhan.

Susunlah query dengan bijak :)

July 7, 2011

Pending or Error Receiving Transactions (ORACLE EBS)

Bagaimana mengulangi proses receiving (status pending atau error) pada aplikasi ORACLE EBS ??
Ketika kita menemukan hal ini, maka solusinya adalah :

1. Pilih responsibility Purchasing super user
2. Masuk ke menu Receiving > Transaction status summary
3. Kemudian klik Find
4. Jika ada data yang ditampilkan pada form tersebut, maka lakukan proses hapus record
5. Setelah proses hapus selesai, jangan lupa untuk Save transaction


June 30, 2011

ORA-04062: signature of package has been changed

Jika suatu ketika pada saat implementasi aplikasi ORACLE kalian bertemu dengan error message seperti ini

ORA-04062: signature of package has been changed

maka untuk pertolongan pertama, kita dapat melakukan compile pada object yang terkait dengan error message tersebut.

Jika kondisi tersebut masih berlanjut maka mintalah bantuan dari ORACLE Support.
:)

May 24, 2011

Desformat Report Untuk Cetak Nota Kasir

Bagaimana membuat format report untuk cetak nota penjualan pada kasir menggunakan Oracle Report Developer? pertanyaan ini langsung muncul ketika ada project yang membutuhkan modul kasir. Sebenarnya tidak sulit membuat desain report kasir, hanya saja yang menjadi kendala (karena belum berpengalaman) adalah menghentikan berputarnya gulungan kertas pada baris terakhir yang tercetak.

Akhirnya setelah mendapat pencerahan dari salah satu rekan disebuah forum Oracle, hal tersebut sudah dapat diselesaikan. Berikut ini adalah cara yang cukup sederhana untuk melakukannya :

1. Gunakan salah satu format print file pada parameter Desformat.
2. Buka dan edit print file yang digunakan. (contoh : no_ff.prt)
3. Hapus pada baris afterpage.
4. Tutup dan simpan print file tersebut.
5. Lanjutkan cetak nota kasir.

Selamat mencoba :)

January 22, 2011

Menggunakan Proses Aritmatik

Dalam penyusunan sebuah laporan, sering kali dibutuhkan perhitungan pada data yang ditampilkan. Dalam SQL hal ini dapat dilakukan dengan menggunaka operator arimatika.
Jika digunakan beberapa operator aritmatik bersamaan, maka akan ada prioritas yang akan dikerjakan, yaitu:

- level 1 : * (perkalian) dan / (pembagian)
- level 2 : + (penjumlahan) dan - (pengurangan)

Untuk operator yang berada di level yang sama akan dikerjakan berurutan dari kiri ke kanan, selain itu dapat juga prioritas tersebut diganti, dengan cara menggunakan tanda kurung ().

Contoh :
sql>select id, (nilai_01 * 0.1) + (nilai_02 * 0.2)
  from nilaiku;

VIEW

View adalah sebuah object pada Database ORACLE yang hanya menyimpan query yang menghasilkan data dengan fungsi atau nilai tertentu, untuk memudahkan kita dalam mengakses data. Jika kita sering menggunakan query dibawah ini dalam banyak kondisi :

sql> select customer_id, customer_name from mst_customer where point_over > 80;

Maka akan lebih mudah jika kita membuat view untuk mengakses data tersebut, dengan cara :

sql> create view mst_customer_po80_v
as
select customer_id, customer_name from mst_customer where point_over > 80;

Dengan demikian maka untuk mendapatkan nilai tersebut kembali, kita hanya perlu menggunakan query :

sql> select * from mst_customer_po80_v;

Alter Table

Table yang sudah didefinisikan sering kali mengalami perubahan pada saat sebuah aplikasi dikembangkan. Apakah perubahan tersebut menambah kolom ataupun mengganti tipe data. Disini ORACLE mempunyai fungsi yang dapat digunakan untuk melakukannya yaitu ALTER TABLE.

Alter Table, merupakan fungsi yang digunakan untuk melakukan modifikasi pada table. Modifikasi yang bisa dilakukan antara lain adalah modifikasi kolom dan tipe data, modifikasi constraint dan index, dll yang terkait dengan modifikasi table. Berikuti ini contoh penggunaan fungsi tersebut :

1. Menambah kolom

sql> desc EMP;
Name            Null?    Type       
--------------- -------- -------------
EMP_ID                   NUMBER
EMP_NAME                 VARCHAR2(20)
HIREDATE                 DATE
STATUS                   CHAR(1)

sql> alter table EMP add (CREATION_DATE DATE, CREATED_BY NUMBER);

Table altered.

sql> desc EMP;
Name            Null?    Type       
--------------- -------- -------------
EMP_ID                   NUMBER
EMP_NAME                 VARCHAR2(20)
HIREDATE                 DATE
STATUS                   CHAR(1)
CREATION_DATE            DATE
CREATED_BY               NUMBER


2. Menghapus kolom

sql> alter table EMP drop column CREATED_BY;

Table altered.

sql> desc EMP;
Name            Null?    Type       
--------------- -------- -------------
EMP_ID                   NUMBER
EMP_NAME                 VARCHAR2(20)
HIREDATE                 DATE
STATUS                   CHAR(1)
CREATION_DATE            DATE


January 17, 2011

Table

Pada Databese ORACLE terdapat object Table, digunakan untuk menyimpan data dengan tipe Number, Character, Date, Blob, Clob, dll. Terdapat beberapa jenis table yang dikenal pada ORACLE, diantaranya ada Table, Temporary Table dan Snapshot (Materialized View).

Table adalah object yang umum digunakan untuk menyimpan data. Temporary Table adalah object yang dapat digunakan untuk menyimapan data yang bersifat sementara, data yang disimpan dapat disesuaikan dengan kebutuhan user / session yang dipakai. Snapshot / Materialized View adalah table datanya akan selalu di-synchronized sesuai kebutuhan.

Perintah yang digunakan untuk membuat Table merupakan perintah DDL (Data Definition Language), berikut ini adalah contoh bagaimana membuat table pada Database ORACLE :


CREATE TABLE master_user
  (
    user_id NUMBER,
    username VARCHAR2(15 byte),
    status VARCHAR2(1 byte),
    created_date DATE,
    created_by NUMBER,
    lastupdate_date DATE,
    lastupdate_by NUMBER
  );


setelah table sudah dibuat, kita dapat melihat kembali definisi table tersebut dengan cara :

Describe Table


October 8, 2010

IN - NOT IN

Fungsi IN dan NOT IN, adalah salah satu kemudahan yang diberikan untuk melakukan pencarian data pada satu kolom berdasarkan daftar nilai yang kita miliki. Bagaimana mengunakan fungsi IN dan NOT IN dalam melakukan pencarian data, berikut ini terdapat beberapa contoh:

Tabel Kelompok
KODE JML_ANGGOTA TIPE
---- ----------- ----
ABC            9 OP
DEF           16 OP
GHI            4 CL
JKL            7 OP
MNO            2 CL
PQR            0 XX


September 14, 2010

Nama Alias untuk Tabel dan Kolom

Adakalanya beberapa tabel memiliki nama kolom yang sama, hal ini akan dapat mengakibatkan kesalaha penulisan query jika pada kolom yang sama tersebut tidak ditambahkan nama alias. Nama alias atau nama lain dapat digunakan pada pemberian nama kolom maupun tabel pada saat penyusunan query, sehingga hasil yang tampil bukan nama kolom yang sudah didefinisikan pada tabel aslinya melainkan nama kolom aliasnya. Kita lanjutkan pada contoh :

Tabel KARYAWAN
ID NAMA     DEPT_ID
-- -------- -------
 1 Drogba   AAA
 2 Iniesta  BBB
 3 Ronaldo  BBB


Tabel DEPARTEMEN
DEPT_ID  NAMA_DEPT
-------  -----------------------
AAA      PEMASARAN DAN PENJUALAN
BBB      PRODUKSI

sql>select id, nama, nama_dept
  from KARYAWAN, DEPARTEMEN
 where dept_id = dept_id;

ora-00918 : column ambiguously defined

setelah mengunakan alias untuk nama tabel

September 3, 2010

Decode pengganti If Then Else

Fungsi DECODE pada Oracle Sql memiliki algoritma yang sama dengan proses IF THEN ELSE, hanya saja DECODE dapat digunakan pada perintah sql tidak seperti IF THEN ELSE yang hanya ditulis pada pl/sql. Jadi dapat dikatakan bahwa fungsi ini digunakan untuk memberikan nilai penganti. Kita lihat contoh berikut ini :

Tabel Departemen, pada kolom Kota
Kota
-----------
Jakarta
Banten
Surabaya
Banyuwangi
Denpasar



September 1, 2010

Mengganti Nilai Null

Data yang tersimpan pada table tidak selalu terisi pada setiap kolomnya, misalkan kita akan melakukan perhitungan pada beberapa kolom dengan tipe number dimana salah satu kolom tersebut tidak berisi nilai atau null, maka hasil perhitungan akan menjadi null. Maka solusi untuk perhitungan jika ada kolom yang bernilai null adalah menggunakan fungsi NVL, seperti ini :

contoh table TXN_A

Mendapatkan Tanggal System

Setiap dilakukan kegiatan audit, maka tanggal adalah sebuah data yang sangat penting. Informasi ini sangat dibutuhkan karena dengan data ini kita dapat melakukan rekonstruksi data, sehingga urutan kejadian data tersebut dapat disusun dari awal sampai akhir. Bagaimana mendapatkan tanggal system pada Database Oracle, berikut adalah caranya :