Pivot Table Sederhana Pada Oracle

March 21, 2014
Di Microsoft Excel terdapat fungsi untuk mengelompokkan data berdasarkan beberapa criteria tertentu, bagaimanakah jika data itu di database. Jangan khawatir kawan, di SQL maupun di Oracle terdapat fungsi yang bisa membalikkan baris menjadi sebuah kolom.

Disini saya mendapatkan kasus seperti di bawah ini: saya mempunyai table : Pegawai


Selanjutnya saya akan membuat Pivot Table dengan Oracle dengan perintah :

select tgl,
sum(decode(id_pegawai,100,nilai,0)) as pgw100,
sum(decode(id_pegawai,111,nilai,0)) as pgw111,
sum(decode(id_pegawai,200,nilai,0)) as pgw200,
sum(decode(id_pegawai,222,nilai,0)) as pgw222
from(
select * from pegawai
)
group by tgl

Hasilnya :



Sebelum Oracle Database 11g, Anda akan melakukan hal itu melalui semacam fungsi decode untuk setiap nilai dan menulis setiap nilai yang berbeda sebagai kolom terpisah. 
Untuk versi 11G PIVOT dapat dituliskan dalam perintah Query, Contohnya adalah sebagai berikut :

select * from (
   select times_purchased, state_code
   from customers t
)
pivot
(
   count(state_code)
   for state_code in ('NY','CT','NJ','FL','MO')
)
order by times_purchased
/


Hasilnya :


. TIMES_PURCHASED       'NY'       'CT'       'NJ'       'FL'       'MO'
       ---------------      ----------      ----------      ----------       ----------      ----------
              0      16601         90          0          0          0
              1      33048        165          0          0          0
              2      33151        179          0          0          0
              3      32978        173          0          0          0
              4      33109        173          0          1          0


More Link : http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html
Pivot Table Sederhana Pada Oracle Pivot Table Sederhana Pada Oracle Reviewed by Bank Ifoel on March 21, 2014 Rating: 5

Membuat Prosedure di oracle

March 07, 2014

Membuat PROCEDURE di oracle

Sebelum saya menuliskan perintah untuk membuat procedure saya akan bercerita sedikit tentang procedure, Procedure merupakan suatu blok program/perintah yang dapat di panggil sewaktu-waktu, hal ini dapat memudahkan kita sebagai seorang programmer untuk menghemat waktu dalam menuliskan kode2 program, karena dengan adanya procedure ini kita hanya memanggil procedure yang dibutuhkan beserta parameter-parameternya tanpa harus menuliskan sintax (perintah) SQL yang panjang apalagi perintah itu sering kita panggil, (Semoga sedikit penjelasan saya tentang procedure tidak melenceng, Mohon para master untuk mengkoreksi tulisan saya, hehehe...).

Berikut adalah contoh membuat prosedure tambah_data_emp, perlu temen-temen ketahui EMP adalah nama sebuah tabel yang ada di Schema SCOTT, karena memang pada saat saya menginstall oracle V. 10G user/Schema SCOTT sudah ada dan ketika saya buka2 sudah ada beberapa tabel yang ada didalam schema tersebut, tanpa berpikir panjang lagi akhirnya saya menjadikan SCOTT sebagai objek penulisan Blog ini, mohon maaf yah SCOTT..., :).

Setelah dibaca ulang koq tulisan ini malah tidak ada perintah untuk membuat PROCEDURE seperti yang di judul yah...,hehehe...

Oke mas bro kita lanjut lagi,,,....

Langsung saja ini adalah perintah untuk membuat PROCEDURE yang sudah saya janjikan sebelumnya (siapa yang janji dan siapa yang dijanjikan) aya aya wae...

Keterangan Kode diatas :
SQL> CREATE OR REPLACE PROCEDURE tambah_data_emp adalah perintah untuk membuat atau mengganti procedure jika procedure dengan nama tambah_data_empsudah ada, jika belum ada maka akan membuat procedure tersebut
Baris Ke-2 : membuat parameter untuk procedure tambah_data_emp
Baris Ke-3 : ketikan nama variabel dibawah kata AS Jika kita akan mendeklarasikan variabel lokal untuk menyimpan data sementara
Baris Ke-4 s.d 6 adalah prosedure yang berisi perintah SQL dimana saya mencontohkan untuk proses input data ke tabel EMP dengan parameter yang sudah di tentukan.

Okay sampai disini perjumpaan kita tentang cara pembuatan procedure sederhana, sebenarnya masih banyak hal-hal lain yang terkait dengan procedure ini tapi... kalau langsung saya tuliskan malah saya jadi pusing sendiri bingung jelasinnya. hehehe...

Pasti teman2 bertanya bagaimana cara memanggil procedure melalui PHP...? nanti saya akan bahas bagaimana cara pemanggilannya...
Membuat Prosedure di oracle Membuat Prosedure di oracle Reviewed by Bank Ifoel on March 07, 2014 Rating: 5

Memanggil Prosedure di Oracle dengan PHP

March 07, 2014
Memanggil procedure di oracle melalui PHP
Beberapa hari yang lalu saya sudah menulis bagaimana membuat procedure di oracle dan bagaimana cara memanggil procedure oracle tapi masih dalam lingkungan oracle (Menggunakan SQL PLUS), Setelah beberapa hari tidak menulis di blog belajarphporacle.blogspot.com di awal bulan ini saya coba untuk membuat sintak bagaimana cara memanggil prosedure oracle melalui PHP, ternyata tidak sesulit yang saya bayangkan, :)

Masih ingat tulisan saya yang kemarin tentang Browse, input, delete dan edit oracle via PHP ???, saya menggunakan file proses_indata.php untuk memanggil prosedure oracle, berikut syntak PHP untuk memanggil prosedure di oracle, saya menggunakan file proses_indata.php

<?php
//Proses input data
include "konek.php"; // untuk memanggil koneksi
//Mendeklarasikan variabel dari FORM INPUT
$empno=$_POST['empno'];
$empname=$_POST['empname'];
$job=$_POST['job'];
$hiredate1=$_POST['date'];
$salary=$_POST['salary'];
$dept=$_POST['dept'];
//Merubah Format tanggal agar sesuai dengan tanggal yang di ORACLE
$date = date_create($hiredate1);
$hiredate=date_format($date, 'd-M-Y');
//Proses input data
$Perintah = oci_parse($koneksi,"BEGIN tambah_data_emp('$empno','$empname','$job','$salary','$hiredate','$dept'); END;");
//$Perintah = oci_parse($koneksi,"INSERT INTO EMP (EMPNO,ENAME,JOB,HIREDATE,SAL,DEPTNO) VALUES ('$empno','$empname','$job','$hiredate','$salary','$dept')");
//Jika berhasil ditambah
if(oci_execute($Perintah)){
  oci_commit($koneksi); //Menyimpan perubahan
  oci_close($koneksi); //Menutup Koneksi
  echo "<script type='text/javascript'> alert ('Data berhasil di tambah') </script>";
  require_once "frm_input.php";
  }
else{
    //Jika gagal ditambah
    echo "<script type='text/javascript'> alert ('Data Gagal di tambahkan') </script>";
}
?>

//Ganti baris ini
$Perintah = oci_parse($koneksi,"INSERT INTO EMP (EMPNO,ENAME,JOB,HIREDATE,SAL,DEPTNO) VALUES ('$empno','$empname','$job','$hiredate','$salary','$dept')");
//Menjadi :
$Perintah = oci_parse($koneksi,"BEGIN tambah_data_emp('$empno','$empname','$job','$salary','$hiredate','$dept'); END;"); 

Perintah diatas memanggil prosedure dengan nama tambah_data_emp dengan parameter $empno,$empname,$job,$salary,$hiredate,$dept

Memanggil Prosedure di Oracle dengan PHP Memanggil Prosedure di Oracle dengan PHP Reviewed by Bank Ifoel on March 07, 2014 Rating: 5

Function pada Oracle

March 03, 2014
Function adalah jenis PL/SQL block yang menghasilkan satu nilai. Secara umum, function digunakan melakukan perhitungan, mengecek eksistensi dan kevalidan suatu data. Function bisa dilibatkan dalam expresi. Function bisa disimpan dalam database sebagai object schema, sehingga suatu function bisa digunakan berulangkali tanpa harus melakukan parsing dan compile ulang.
CREATE [OR REPLACE] FUNCTION function_name
[(parameter1 [mode1] datatype1,
RETURN datatype
IS | AS
PL/SQL block;
Parameter yang berlaku pada function hanya parameter IN.
Privilege yang dibutuhkan CREATE PROCEDURE atau CREATE ANY PROCEDURE
Untuk demo tentang function connect sebagai user SCOTT.
Gunakan tabel EMP, buat function yang mengembalikan SAL dari EMPNO yang dikirim.
-- periksa struktur tabel EMP
SQL> DESC emp;
 Name                    Null?    Type
 ----------------------- -------- -------------
 EMPNO                   NOT NULL NUMBER(4)
 ENAME                            VARCHAR2(10)
 JOB                              VARCHAR2(9)
 MGR                              NUMBER(4)
 HIREDATE                         DATE
 SAL                              NUMBER(7,2)
 COMM                             NUMBER(7,2)
 DEPTNO                           NUMBER(2)

CREATE OR REPLACE FUNCTION GET_SAL  (P_EMPNO   NUMBER)
RETURN NUMBER
AS
   V_SAL    NUMBER(10);
BEGIN
  SELECT SAL INTO V_SAL
  FROM EMP  WHERE EMPNO=P_EMPNO;
  -- Nilai yang dikeluarkan
  RETURN V_SAL;
END;

Berbagai cara menjalankan Function.

– Menjalankan function sebagai parameter dari suatu procedure

SQL> SET SERVEROUTPUT ON
SQL> EXECUTE DBMS_OUTPUT.PUT_LINE(GET_GAJI(7369));
800

– Menjalankan funtion sebagai bagian dari ekspresi

SQL> SET AUTOPRINT ON
SQL> VARIABLE G_HASIL NUMBER;
SQL> EXECUTE :G_HASIL := GET_GAJI(7788);
PL/SQL procedure successfully completed.

G_HASIL
----------
3000 

– Menjalankan function pada perintah SELECT

SQL> SELECT EMPNO,ENAME,GET_SAL(EMPNO) FROM EMP;

NIP NAMA       GET_SAL(EMPNO)
---------- ---------- -------------
      7369 SMITH                800   
      7499 ALLEN               1600
      7521 WARD                1250
      7566 JONES               2975
      7654 MARTIN              1250

Contoh lain function

CREATE OR REPLACE FUNCTION PAJAK(P_SAL NUMBER, PCT NUMBER)
RETURN NUMBER
AS
BEGIN
   RETURN (P_SAL * (PCT/100));
END;
/
SQL> SELECT EMPNO,ENAME,SAL,PAJAK(SAL,10)
2  FROM EMP;  EMPNO ENAME             SAL PAJAK(SAL,10)
---------- ---------- ---------- -------------
      7369 SMITH             800            80
      7499 ALLEN            1600           160
      7521 WARD             1250           125
      7566 JONES            2975         297.5
      7654 MARTIN           1250           125
      7698 BLAKE            2850           285
      7782 CLARK            2450           245
      7788 SCOTT            3000           300
      7839 KING             5000           500

Function pada Oracle Function pada Oracle Reviewed by Bank Ifoel on March 03, 2014 Rating: 5

Membuat Prosedure pada Oracle

March 03, 2014
Membuat Procedure

Procedure dibuat dengan statemen CREATE PROCEDURE.
Untuk perintah pembuatannya sebagai berikut :
CREATE [OR REPLACE] PROCEDURE nama_procedure
(parameter_1 tipedata, parameter_2 tipedata, . . . .) IS
variable-variabel_lokal
BEGIN
statemen;
. . . .
END;

Contoh :

Kita akan membuat procedure yang dapat menampilkan nama suplier dari tabel suplier yang memiliki kode 'EJ-01'. Maka kita dapat menuliskannya ke dalam kode berikut :
create or replace procedure cari_nama_supplier is
vNamasuplier suplir.nama_suplier%TYPE;
begin
select nama_suplier into vNamasuplier from
where kode_suplier = 'EJ-01';
dbms_output.put_line('Namanya adalah : ' ||
vNamasuplier);
end;
Penjelasan :

a. create or replace procedure

Statemen CREATE digunakan untuk membuat prosedur dan REPLACE digunakan untuk mengganti isi dari procedure jika nama procedure sudah ada dalam database.

b. vNamasuplier suplir.nama_suplier%TYPE

Artinya kita mendeklarasikan sebuah variabel yang bernama vNamasuplier dan %TYPE menunjukkan bahawa tipe data sama dengan kolom nama_suplier yang ada pada tabel suplier

c. select nama_suplier into vNamasuplier from where kode_suplier = 'EJ-01'

Ini adalah blok PL/SQL yang digunakan untuk menampilkan nama suplier dari tabel suplier yang berkode 'EJ-01'. Selanjutnya nama tersebut disimpan ke variabel vNamasuplier.

d. dbms_output.put_line('Namanya adalah : ' || vNamasuplier)

Statemen ini artinya menampilkan teks 'Namanya adalah : ' yang akan digabungkan dengan nama suplier yang diperoleh dari variabel vNamasuplier. Untuk menggabungkannya ditandai dengan tanda '||'.

Eksekusi Procedure

Untuk melakukan eksekusi terhadap suatu procedure, kita harus menggunakan statemen EXECUTE, atau cukup dengan menuliskan EXEC saja.

Berikut adalah bentuk perintahnya :
EXEC[UTE] NamaProcedure(daftar_parameter);
Untuk contoh kasus, kita akan coba melakukan eksekusi untuk procedure cari_nama_suplier yang tealah kita buat di atas, maka perintahnya adalah sebagai berikut.
exec cari_nama_suplier;
maka hasilnya :
SQL>exec cari_nama_suplier;
Namanya adalah : PT. ACTION
PL/SQL procedure succesfully completed.
SQL> 

Memanggil Prosedure yang dibuat di Oracle dengan PHP


Membuat Prosedure pada Oracle Membuat Prosedure pada Oracle Reviewed by Bank Ifoel on March 03, 2014 Rating: 5
Powered by Blogger.