Category Archives: Oracle

Query untuk paging pada Database Oracle

Pada tulisan sebelumnya telah disebutkan tentang perintah query untuk paging pada database mysql maka berikut ini akan disebutkan perintah query untuk paging pada database oracle.

Berbeda dengan MySQL yang memiliki perintah “limit”, pada database oracle tidak ada perintah langsung (yang saya tau :D) untuk memanggil dan membatasi baris tertentu saja. Ada perintah rownum tetapi perintah ini hanya membatasi jumlah row yng ditampilkan saja dan tidak bisa digunakan untuk membatasi baris sekian hingga sekian.

Untuk itu, perlu ada perintah untuk mendifinisikan suatu informasi tentang baris-baris yang sedang dipanggil, yaitu dengan menggunakan perintah row_num().

Contoh sebagai berikut:

select * from 
(select row_number() over (order by nama asc) baris, a.*
from pegawai order by nama asc)
where baris between 1 and 50

artinya, kita menambahkan satu field atau kolom bernama “baris” yang berisi nomor urut data yang sedang dipanggil baru kemudian kita pilih antara baris ke 1 sampai dengan baris ke 50.

Contoh kedua:

select * from 
(select row_number() over (order by nama asc) baris, a.*
from pegawai order by nama asc)
where baris between 51 and 100

artinya, kita mengambil baris ke 51 sampai dengan baris ke 100, dan begitu seterusnya.

Demikian, Semoga Bermanfaat.

Fungsi MD5 di Oracle

Pada DBMS Oracle ternyata belum ada fungsi md5 seperti pada mysql. sehingga ketika kita memasukkan data password isinya berupa string yang bisa dilihat oleh setiap orang yang memiliki hak akses databases. Oleh karena itu perlu adanya suatu fungsi yang akan mengenkrip string tersebut agar privasi password setiap user benar-benar terjamin.

Untuk membuat fungsi md5, kita perlu menggunakan fitur DBMS_OBFUSCATION_TOOLKIT.MD5(‘string’). Tetapi output dari fungsi tersebut bukanlah hexadecimal dengan panjang karakter 32, tetapi merupakan raw yang panjangnya 16 karakter. sehingga hasil dari DBMS_OBFUSCATION_TOOLKIT.MD5() perlu di convert ke bentuk hexadecimal.

Ok, to the point aja…. untuk membuat fungsi md5 buatlah script seperti berikut :

create or replace function “GET_HASH” (p_password in VARCHAR2)
return VARCHAR2 is
begin
RETURN DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => UPPER(p_password));
end;

untuk mengimplementasikan fungsi diatas, jalankan script berikut :

select RAWTOHEX(GET_HASH(‘admin’)) FROM DUAL;

jika semuanya berjalan lancar, berikut hasil dari script diatas..

RAWTOHEX(GET_HASH(‘ADMIN’))
——————————————————————————–
73ACD9A5972130B75066C82595A1FAE3

Sumber : http://aristhu03.wordpress.com/2008/08/08/md5-di-oracle/

Perintah-perintah Query dengan klausa “NULL” di Oracle

NULL bisa berarti hilang, tidak diketahui , atau tidak adanya data.
NULL juga tidak memiliki tipe data, NULL bukanlah angka, karakter atau tipe data yang lain.
NULL tidak bisa diartikan juga sebagai nilai nol.

Berikut contoh-contoh perintah query yang mengandung kata NULL.

NOT NULL Constraint
Suatu kolom pada suatu tabel bisa ditentukan agar selalu diisi, artinya, akan ada error ketika kolom tersebut tidak diisi. Contoh perintahnya :

CREATE TABLE t1 (c1 NUMBER PRIMARY KEY, c2 DATE NOT NULL);

Perintah Perbandingan
Mengambil data dari suatu tabel yang memiliki kolom yang bernilai NULL:

SELECT * FROM emp WHERE comm IS NULL;

Mengambil data dari suatu tabel yang memiliki kolom yang tidak bernilai NULL:

SELECT * FROM emp WHERE comm IS NOT NULL;

Merubah nilai suatu kolom menjadi NULL:

UPDATE emp SET comm = NULL WHERE deptno = 20;

Perintah Pengurutan (Sorting)
Ketika melakukan sorting pada data yang ada nilai null-nya, maka nilai null akan muncul pertama jika diurutkan secara ascending (kecil ke besar), dan nilai null akan muncul terakhir jika diurutkan secara descending. Namun, kadang kita ingin menampilkan data dengan urutan terbesar terlebih dahulu dan nilai null ditampilkan paling akhir. Untuk melakukan hal itu berikut contoh penggunaannya:

select * from emp order by sal desc NULLS FIRST;

atau

select * from emp order by sal desc NULLS LAST;

Demikian, Semoga bermanfaat.

Referensi : http://www.orafaq.com/wiki/NULL

 

Impor database 11g ke 10g

Mungkin Anda pernah mengalami masalah ketika akan meng-impor database oracle dari oracle versi 11g ke oracle versi 10g. Ketika di berikan perintah impor pada file DMP dari oracle 11g ke oracle 10g biasanya kan mucul pesan error bla bla bla data file header not known bla bla bla.. Nah untuk mengatasinya cukup mudah, ketika expor database 11g ke file dmp gunakan oracle client 10g, maksudnya, perintah expor dieksekusi pada komputer client yang terinstall oracle client 10g. Selanjutnya, setelah selesai proses expor, imporlah file dmp yang terbentuk ke databse oracle 10 target seperti biasa. Sesuai pengalaman yang saya lakkan hal ini bisa berhasil.

Demikian, Semoga bermanfaat.