Pivot Table Oracle Lebih lanjut

April 23, 2014
select CLASS_TITLE,BATCH_ID,START_DATE,END_DATE,CLASS_OWNER_NAME,
  sum(case when JENJANG ='ASST' then JMLH else 0 end) ASST,
  sum(case when JENJANG ='PGD' then JMLH else 0 end) PGD,
  sum(case when JENJANG ='AMGR' then JMLH else 0 end) AMGR,
  sum(case when JENJANG ='MGR' then JMLH else 0 end) MGR,
  sum(case when JENJANG ='AVP' then JMLH else 0 end) AVP,
  sum(case when JENJANG ='VP' then JMLH else 0 end) VP,
  sum(case when JENJANG ='EVP' then JMLH else 0 end) EVP
from
(
  SELECT DISTINCT
    CT.CLASS_ID,
    UPPER(FER.OFFERING_COURSE_TITLE) AS COURSE,
    UPPER(CT.CLASS_TITLE) AS CLASS_TITLE,
    ct.batch_id,
    CT.START_DATE,
    CT.END_DATE,
    CO.CLASS_OWNER_NAME,
    PEG.JENJANG,
    (
      SELECT
        COUNT(*)
      FROM
        V_ALL_PEG A
      JOIN T_ENROLLMENT_DETAIL B ON A.PERSON_ID = B.PERSON_ID
      JOIN T_CLASS C ON B.CLASS_ID = C.CLASS_ID
      WHERE A.JENJANG = PEG.JENJANG AND B.CLASS_ID = CT.CLASS_ID
    ) AS JMLH,
    (
      SELECT COUNT
        (*)
      FROM
        T_ENROLLMENT_NONPEGAWAI_DETAIL C
      WHERE C.CLASS_ID = CT.CLASS_ID
    ) as OUT_SOURCE
  FROM
        T_CLASS CT    
  LEFT JOIN T_ENROLLMENT_DETAIL ED ON ED.CLASS_ID = CT.CLASS_ID
  LEFT JOIN M_CLASS_OWNER CO ON CT.CLASS_OWNER = CO.CLASS_OWNER_ID
  LEFT JOIN T_OFFERING FER ON FER.OFFERING_ID = CT.OFFERING_ID
  JOIN V_ALL_PEG PEG ON PEG.PERSON_ID = ED.PERSON_ID
  WHERE CT.END_DATE >= sysdate
  ORDER BY CO.CLASS_OWNER_NAME,UPPER(CT.CLASS_TITLE)
) S
group by CLASS_TITLE,BATCH_ID,START_DATE,END_DATE,CLASS_OWNER_NAME
Pivot Table Oracle Lebih lanjut Pivot Table Oracle Lebih lanjut Reviewed by Bank Ifoel on April 23, 2014 Rating: 5

Aplikasi Bantu Oracle

April 21, 2014
TOAD – Tools of Oracle developer memang tools terbaik yang pernah saya gunakan untuk pl/SQLnya oracle, namun salah satu kelemahan dari TOAD adalah harga licence-nya yang cukup mahal – denger-denger sih bisa mencapai $800/licence. So, daripada beli mahal-mahal mencari tools pengganti TOAD adalah salah satu alternatif terbaik. Dari hasil bertanya kepada paman Google beberapa tools yang sudah saya coba diantaranya :

1. SQL Detective (http://www.conquestsoftwaresolutions.com/)
SQL Detective v4.01 memiliki fitur yang cukup lengkap bahkan dapat diakatakan powerful dari mulai session browser, fungsi debug, storage manager, database reporting, job monitoring dll. Namun, beberapa kekurangan yang dimiliki oleh sql detective satu diantaranya adalah penempatan icon dan fungsi GUI yang masih kurang user friendly . Contohnya yang paling sederhana adalah tombol (baca:icon) “Apply” yang hampir selalu ditempatkan di ujung kiri atas.  Hal lain yang perlu di wasapadai oleh pengguna SQL Detective adalah metode word wrap yang memberikan 1 karakter enter pada  new line. Kondisi ini akan berdampak pada tidak dapat berjalannya beberapa sensitive script seperti Obfuscation Javascript (Javascript yang telah disusun ulang menjadi 1 line panjang). Hal yang selalu membuat “desperate” adalah masih sangat seringnya terjadi error caused by unhandled exception. Pada saat error terjadi, alert akan muncul seperti gambar berikut dan aplikasi otomatis tertutup.
Error
Salah satu contoh yang dapat memicu terjadinya bugs di sql detective v 4.2 :
Create table dengan nama tabel dan nama kolom sembarang, misal tbl_member
Pilih tbl _member yang sudah terbentuk kemudian klik kanan dan pilih truncate
Setelah selesai kemudian tekan icon refresh di atas grid data
bingo, You made it.. SQL Detective sucessfully shutdownUntuk masasalah style mungkin hanya masalah kebiasaan, namun masih sering munculnya error di SQL Detective membuat tools ini kurang di rekomendasikan.
2. SQL Developer (http://www.oracle.com/technology/products/database/sql_developer/index.html)
SQL Developer adalah tools gratis yang di sediakan oleh Oracle. Tool ini mungkin sengaja dibuat oleh Oracle untuk mengurangi dominasi TOAD (who knows?). Tools ini berbasis JAVA dengan nama awal RAPTOR. SQL Developer mengalami perkembangan sangat cepat, bahkan dalam hitungan hari sudah muncul patch untuk versi barunya. Pada saat kemuculannya SQL Developer memiliki fungsi yang sangat minim namun di versi 1.5.0.53 fungsi yang dimiliki cukup lengkap mulai monitoring session, export wizard, dependencies, code completion dll.
Hal yang masih membuat minor dari tool ini adalah consume memory yang sangat besar (Java based). Untuk 1 koneksi ke localhost dengan 5 windows procedure/package editor dan 2 sql editor mengkonsumsi memory >191Mb. Di lapangan seorang programmer kadang diharuskan membuka lebih dari 1 aplikasi koneksi. So syarat mutlak untuk menggunakan SQL developer adalah spec pc/laptop yang harus diatas rata-rata dengan memori min 512Mb.

3. GoldFish.Net© (http://www.conceptgeek.com/Home.aspx)
GoldFish.Net© is a charityware program. Aplikasi ini memiliki fitur yang cukup lengkap seperti table properties (index, dependencies, trigers, constrains, save to excel, analyze table), left side object single tab, kill session, storage manager, database compare dan code snippet. Dari sisi consume memory GodfishNet mengkonsumsi memory sebesar ~17MB untuk 1 koneksi Hal ini karena goled fish menggunakan .NET framework.
Selain masih dirasakan terlalu berat, kekurangan lain dari Goldfish.Net adalah seperti belum supportya sql editor untuk mengeksekusi script yang diawali dengan declare begin.. end dan belum memiliki fitur hot key. Untuk versi trialnya session dibatasi hanya untuk 5 user for concurrent user

4.SQLDbx v.3.2.0 personal edition (http://www.sqldbx.com)
Hal yang cukup menarik dari toos ini adalah code completion yang akan muncul ketika mengetikkan beberapa huruf. Code completion disini bisa berupa table, procedure, function atau bahkan reserved word. Fungsi di tools ini masih cukup standar dengan pemisahan masing object ke dalam menu terpisah.
Untuk versi personal SQLDbx hanya mengijinkan 2 window text editor yang dapat dibuka. Dalam querynya SQLDbx tidak membatasi row yang akan ditampilkan alias semua row di fetch akibatnya untuk query data yang besar menjadi sangat lama, sehingga disetiap query harus ditambahkan statement rownum untuk membatasi data yang akan ditampilkan.

5.DreamCoder Lite (http://www.sqldeveloper.net/)
Dreamcoder membedakan object menjadi 5 bagian yaitu development, schema, security dan storage. Di versi lite-nya dreamcoder selain digunakan untuk develop aplikasi tools ini memiliki tools yang paling sering digunakan seperti create job, job monitoring, storage dan session monitoring tetapi beberapa fungsi utama ditiadakan seperti untuk melihat properti partition table dll. Salah satu kekurangan dari tools ini adalah tidak bisa melihat keluaran dari dbms_output.put_line pada jendela sql editor.

6.SQL Tools (http://www.sqltools.net)
SQL Tools dengan koneksi login dan multi tab untuk masing-masing objeck membuat tools ini dikenal sebagai TOAD look a like. Memiliki fitur yang cukup lumayan untuk sebuah tools freeware. Dari sisi memory consume SQL Tools sangat ringan untuk 1 koneksi hanya memerlukan sekitar ~10MB. Memiliki kelebihan berupa tools untuk export object database ke flat file. Sayangnya proses development untuk SQL tools sepertinya berhenti, padahal jika di teruskan SQL Tools akan menjadi tools yang banyak diminati.

7. DbForce
Aplikasi Bantu Oracle Aplikasi Bantu Oracle Reviewed by Bank Ifoel on April 21, 2014 Rating: 5

Fatal error: Maximum execution time of 30 seconds exceeded

April 21, 2014






Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\com_classlnr\v_class.php on line 20

Solusi :

Edit file PHP.ini sehingga menjadi :

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 360

Fatal error: Maximum execution time of 30 seconds exceeded Fatal error: Maximum execution time of 30 seconds exceeded Reviewed by Bank Ifoel on April 21, 2014 Rating: 5

14.8 Search

April 19, 2014
14.8.1 Pencarian dengan Mengabaikan huruf besar dan kecil

Didalam pengolahan database yang besar, sering kita harus mencari data-data yang penulisan tidak standar kadang huruf besar semua atau huruf kecil semua atau gabungan keduanya.

saya coba membuat sebuah script yang mengubah pencarian menjadi huruf kecil semuanya. Scriptnya adalah sebagai beikut :

Buat file koneksinya

<?php
$username="latihan"; //Nama user sama dengan skema di oracle
$password=""; //Password sama dengan skema di oracle
$database="localhost/XE"; //localhost bisa di isi dengan IP adress
$koneksi=oci_connect($username,$password,$database);
if($koneksi){
echo "";
}else{
$err=oci_error();
echo "Gagal tersambung ke ORACLE". $err['text'];
}
?>

File untuk pencarian :

<p><b>NAMA KOTA DAN NEGARA</b></p>
 <form name="form1" method="get" action="">
     Search : <input type="text" name="q" id="q"/>
              <input type="submit" value="Search"/>
  </form>

<?php
$baris = 1;
include("ocicon.php");
if(isset($_GET['q']) && $_GET['q']){
$q = $_GET ['q'];
$ql=strtolower($q);
$query = "select * from NAMAKOTA where ID like '%$ql%' or
 LOWER(NAMA)  like '%$ql%' or
 LOWER (NEGARA) like  '%$ql%'
 ORDER BY ID ";
$statemen=oci_parse($koneksi,$query);
oci_execute($statemen);


include ("v_fdata.php");
}else{
$query = "select * from NAMAKOTA
 ORDER BY ID ";
$statemen=oci_parse($koneksi,$query);
oci_execute($statemen);

include ("v_fdata.php");

}
?>

File untuk menampilkan hasil pencarian :

<?php
echo "
<table>
<tr bgcolor=#00FFFF;>
<th>NIM</th>
<th>Nama</th>
<th>Negara</th>
<th align=center>AKSI</th>
</tr>";

while($hasil=oci_fetch_assoc($statemen)) {
 $warna = "#ffffff";
 if($baris % 2 == 0){
  $warna = "#c3c3c3";
 }
 echo "
 <tr bgcolor=".$warna.">
 <td ALIGN=RIGHT>$hasil[ID]</td>
 <td>$hasil[NAMA]</td>
 <td>$hasil[NEGARA]</td>
 <td>&nbsp;<a href=?edit=$hasil[ID]>Edit</a>

 </tr>
 ";
 $baris++;

}
echo"</table>";
oci_free_statement($statemen);
oci_close($koneksi);
?> 

Hasilnya :

14.8 Search 14.8 Search Reviewed by Bank Ifoel on April 19, 2014 Rating: 5

Kode Warna

April 18, 2014

Dalam melakukan perubahan pada template blog atau kode-kode HTML, kita sering ingin mengganti warna pada blog kita sesuai dengan nuansa yang di inginkan.Kode warna HTML biasanya di ikuti dengan tanda #, seperti :
contoh # ffffff (arti kode ini adalah warna putih).

Sebagai referensi warna, berikut kode warna yang bisa anda gunakan untuk mempercantik blog anda.

#666666
#00FFFF
#00FF00
#339900
#FFFF66
#CCFFCC

<p style="color:blue;margin-left:20px;">This is a paragraph.</p>


<!DOCTYPE html>
<html>

<body style="background-color:yellow;">
<h2 style="background-color:red;">This is a heading</h2>
<p style="background-color:green;">This is a paragraph.</p>
</body>

</html>

<!DOCTYPE html>
<html>

<body>
<h1 style="font-family:verdana;">A heading</h1>
<p style="font-family:arial;color:red;font-size:20px;">A paragraph.</p>
</body>

</html>

<head>
<style>
body {background-color:yellow;}
p {color:blue;}
</style>
</head>


Kode Warna Kode Warna Reviewed by Bank Ifoel on April 18, 2014 Rating: 5

Membuat warna baris selang-seling dari data di PHP

April 18, 2014

Membuat warna baris selang-seling dari data di PHP


Membuat warna baris selang seling pada view data dengan PHP. Untuk databasenya dapat menyesuaikan dengan database yang telah anda buat.
skripnya seperti ini:

<?php
$baris = 1;
include("ocicon.php");
$query = "select * from NAMAKOTA ";;
$statemen=oci_parse($koneksi,$query);
oci_execute($statemen);


echo "<p><b>NAMA KOTA DAN NEGARA</b>
<p>
<table>
<tr bgcolor=#00FFFF;>
<th>NIM</th>
<th>Nama</th>
<th>Negara</th>
</tr>";

while($hasil=oci_fetch_assoc($statemen)) {
$warna = "#ffffff";
if($baris % 2 == 0){
$warna = "#c3c3c3";
}
echo "
<tr bgcolor=".$warna.">
<td ALIGN=RIGHT>$hasil[ID]</td>
<td>$hasil[NAMA]</td>
<td>$hasil[NEGARA]</td>
</tr>
";
$baris++;

}
echo"</table>";
oci_free_statement($statemen);
oci_close($koneksi);

?>
Membuat warna baris selang-seling dari data di PHP Membuat warna baris selang-seling dari data di PHP Reviewed by Bank Ifoel on April 18, 2014 Rating: 5

Membuat Prosedure Input dengan Store Prosedure oracle menggunakan sql developer dan PHP

April 09, 2014
Membuat Prosedure Input dengan Store Prosedure oracle menggunakan sql developer dan PHP

Mengapa membuat store prosedure input data pada oracle ?

Pada umumnya sebuah webserver akan menggunakan 2 server yaitu bagian yang mengelola data dan bagian yang mengelola script. dengan mengggunakan store prosedure yang ada pada bagian data maka proses akan terbagi, hal ini akan memperingan kerja server script.

Contoh membuat store prosedure input data pada oracle adalah sebagai berikut :


disini saya menggunakan data sample oracle yaitu table DEPT

Selanjutnya buat file koneksi PHP :


<?php
 //echo "<h2>Oracle Connection</h2> < br />";
 $username = "ora_latihan"; //sesuaikan dengan username ente
 $password = "password"; //sesuaikan dengan password ente
 $host = "localhost/xe"; //sesuaikan dengan host database ente
 $koneksi = oci_connect($username,$password,$host) or die('connection failed !');
 if(!empty($koneksi)){
 echo "";
}else{
 echo "koneksi gagal !";
 }
?>  


Buatlah file form input dengan php :

<html>
<head>
<title>Test Page</title>
</head>
<body>
<h2>Data Collection</h2><p>
<form action="f_input.php" method="post">
<table>
<tr>
<td>Departemen No.:</td>
<td><input type="text" name="DEPNOMOR" /></td>
</tr>
<tr>
<td>Nama :</td>
<td><input type="text" name="NAMA" /></td>
</tr>
<tr>
<td>Location :</td>
<td><input type="text" name="LOCU" /></td>
</tr>
<tr><td colspan="2" align="center"><input type="submit" /></td>
</tr>
</table>
</form>
</body>
</html>

Buatlah File proses input :

<?php
//Proses input data
include "konek.php"; // untuk memanggil koneksi
//Mendeklarasikan variabel dari FORM INPUT
$DEPTNO=$_POST['DEPNOMOR'];
$DNAME=$_POST['NAMA'];
$LOC=$_POST['LOCU'];

$Perintah = oci_parse($koneksi,"BEGIN INP_DEPNO('$DEPTNO','$DNAME','$LOC'); END;");

//Jika berhasil ditambah
oci_execute($Perintah);
oci_commit($koneksi); //Menyimpan perubahan
oci_close($koneksi); //Menutup Koneksi
echo "<script type='text/javascript'> alert ('Data berhasil di tambah') </script>";

?>


Membuat Prosedure Input dengan Store Prosedure oracle menggunakan sql developer dan PHP Membuat Prosedure Input dengan Store Prosedure oracle menggunakan sql developer dan PHP Reviewed by Bank Ifoel on April 09, 2014 Rating: 5

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

Membuat Grafik di Oracle Development

February 21, 2014


Membuat Grafik di Oracle Development Membuat Grafik di Oracle Development Reviewed by Bank Ifoel on February 21, 2014 Rating: 5

Membuat Auto Increment / Auto Number Di Oracle

February 15, 2014
Membuat Auto Increment / Auto Number Di Oracle


Bagi para developer/programmer yang biasa menggunakan database Microsoft SQL Server pasti sudah tidak asing lagi dengan istilah auto increment pada tabel. auto increment / auto number digunakan untuk membuat penomoran secara otomatis pada sebuah tabel. di Microsoft SQL Server kita cukup mengatur Is Indentity pada kolom yang ingin di jadikan auto increment menjadi Yes, simple bukan?
Berbeda halnya dengan Oracle, Oracle tidak menyediakan fitur semacam ini pada tabel-nya. Auto Increment pada Oracle di sebut dengan istilah Sequences. sehingga untuk membuat kolom pada table menjadi auto number kita harus membuat sequence terlebih dahulu. Ok, langsung saja ke TKP..
Misalkan kita mempunyai tabel dengan nama MsCutomer dengan kolom CustomerID, CustomerName, dan kolomCustomerID akan kita jadikan auto increment/auto number maka langkah-langkahnya adalah :
Pertama kita buat lah tabel sbb :

Membuat sequency dari oracle development





Dengan script :
CREATE SEQUENCE SQ_TRS

    MINVALUE 1    MAXVALUE 999999999999999999999999999    START WITH 1    INCREMENT BY 1    CACHE 20; 
SCRIPT untuk membuat trigger :

CREATE OR REPLACE TRIGGER TR_TRS
BEFORE INSERT  ON T_TRANSPORT
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
  SELECT TR_TRS.nextval INTO :NEW.ID_TRS FROM dual;
END;






Membuat Auto Increment / Auto Number Di Oracle Membuat Auto Increment / Auto Number Di Oracle Reviewed by Bank Ifoel on February 15, 2014 Rating: 5

Membuat View pada ORACLE

February 14, 2014
 Membuat View pada ORACLE


CREATE OR REPLACE FORCE VIEW "LMSUSER"."V_TRS" ("JENIS_KENDARAAN", "J_COUNT")
AS
  SELECT "JENIS_KENDARAAN",
    COUNT("JENIS_KENDARAAN") J_COUNT
  FROM T_TRANSPORT_DETAIL
  GROUP BY T_TRANSPORT_DETAIL.JENIS_KENDARAAN;

Perintah tersebut untuk menampilkan data _TRANSPORT DETAIL. yang dapat di artikan :

Apabila tidak ada file V_TRS maka buat baru atau timpa apabila ada, tampilkan field Jenis Kendaraan dan hitunglah jumlah recordnya simpan hasil perhitungannya pada field j_count berdasarkan kelompok jenis kendaraan dari tabel  T_TRANSPORT DETAIL.





Membuat View pada ORACLE Membuat View pada ORACLE Reviewed by Bank Ifoel on February 14, 2014 Rating: 5

View Pada Oracle

January 28, 2014

VIEW PADA ORACLE



View adalah salah satu object database, yang secara logika merepresentasikan sub himpunan dari data yang berasal dari satu atau lebih table.
View merupakan hasil perintah SELECT yang berupa tabel virtual yang dapat membungkus query tertentu. View berfungsi untuk mempermudah dalam pengambilan query tertentu. Dengan view kita dapat menerapkan pembatasan pada pengaksesan guna pengamanan keamanan data seperti di bawah ini:
  • Kolom/Field pada tabel tertentu.
  • Baris/Record pada tabel tertentu.
  • Field dan Record pada tabel tertentu.
  • Turunan dari view lain.
  • Record menggunakan operasi join.
  • Data statistik dari tabel.
Kegunaan dari view adalah :
  • Membatasi akses database
  • Membuat query kompleks secara mudah
  • Mengijinkan independensi data
  • Untuk menampilkan view (pandangan) data yang berbeda dari data yang sama.
Cara membuat view :
Untuk membuat view kita dapat menggunakan perintah view dengan format seperti dibawah ini :
CREATE VIEW view_name[(column_list)] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION]
Keterangan 
View_name adalah nama view yang akan dibuat. Column_list mendefinisikan field yang akan digunakan dalam view. Column_list harus memiliki jumlah field yang sama dengan yang didefinisikan pada select_statement. Jika column_list tidak ada maka view dibuat berdasarkan field yang didefinisikan pada select_statement. With Encryption adalah opsi untuk menambahkan enkripsi pada view. AS berisi perintah yang digunakan untuk membuat view.

Contoh :
CREATE VIEW V_ SISWA AS SELECT * FROM SISWA
Cara menampilkan view :
Untuk menampilkan atau memanggil view yang sudah kita buat sebelumnya, kita dapat menggunakan perintah select dengan format seperti dibawah ini :
SELECT * FROM V_PELANGGAN
Cara merubah view :
Untuk merubah view kita dapat menggunakan perintah alter view dengan format seperti dibawah ini :
ALTER VIEW view_name[(column_list)] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION]
Contoh :
ALTER VIEW V_SISWA AS SELECT * FROM SISWA WHERE ALAMAT ='JAKARTA'
Cara menghapus view :
Untuk menghapus view kita dapat menggunakan perintah drop view dengan format seperti dibawah ini :
DROP VIEW view_name
Contoh :
DROP VIEW V_PELANGGAN
View Pada Oracle View Pada Oracle Reviewed by Bank Ifoel on January 28, 2014 Rating: 5
Powered by Blogger.