Jumat, 22 Oktober 2010

Syntax IF..ELSE dan CURSOR pada SQL

Sebelum memulai melakukan syntax if...else, kita melakukan langkah-langkah connect to database sql terlebih dahulu seperti biasa, untuk melihat langkah sebelumnya klik disini.
  

Contoh 1 syntax if...else

declare
input number(3);

begin
input:=&angka;
if input=1 then
   dbms_output.put_line( input ||' Adalah hari Senin');
  elsif input=2 then
    dbms_output.put_line(input||' Adalah hari Selasa');
  elsif input=3 then
    dbms_output.put_line(input||' Adalah hari Rabu');
  elsif input=4 then
    dbms_output.put_line(input||' Adalah hari kamis');
  elsif input=5 then
    dbms_output.put_line(input||' Adalah hari Jumat');
  elsif input=6 then
    dbms_output.put_line(input||' Adalah hari Sabtu');
  elsif input=7 then
    dbms_output.put_line (input||' Adalah hari Minggu');
  else
    dbms_output.put_line('maaf inputan yang anda masukan salah');
end if;
end;
/

hasil syntax:


Contoh 2 syntax if...else

declare
harga number(10);
jumlah number(10);
total number(10);
diskon number (3);
bayar number(10);

begin
harga:= &harga_buku;
jumlah:= &jumlah_beli;

total:=harga*jumlah;
if total > 50000 then
 diskon:=10;
 bayar:= total*((100-diskon)/100);
 dbms_output.put_line('Maka harga : ' || bayar );
end if;
end;
/

hasil syntax:



Contoh 3 syntax if...else
  contoh yang ini berbeda dari contoh sebelumnya, contoh yang ini mengambil informasi waktu atau jam dari sebuah sistem.

declare
nama varchar(15);
jam number(4);

begin
nama:='&masukan_nama';
jam:=to_char(sysdate,'HH24');
dbms_output.put_line( nama );
if (jam >='05' and jam <='12') then
 dbms_output.put_line ('selamat pagi' ||' sekarang udah jam ' || jam );
 elsif  (jam >='12' and jam <='16') then
 dbms_output.put_line ('selamat siang' ||' sekarang udah jam ' || jam );
 elsif (jam >='16' and jam <='21') then
 dbms_output.put_line ('selamat sore'||' sekarang udah jam ' || jam );
 else
 dbms_output.put_line ('selamat malam'||' sekarang udah jam ' || jam );
end if;
end;
/

karena contoh ini mengambil informasi waktu dari sistem, dan pada saat saya membuat kebetulan pukul 00.00 maka hasilnya :


Sekarang kita beralih ke syntax cursor pada SQL, untuk melakukan syntax cursor ini sebaiknya kita connect ke hr terlebih dahulu, seperti biasa cara connectnya sama kaya cara connect sql sebelumnya.
    Sebelum lihat syntaxnya, terlebih dahulu kita harus tau cursor itu apa, jenisnya apa saja, dan fungsinya. Cursor adalah suatu variable dalam blok PL/SQL yang tidak mengijinkan seorang programer membuat query yang menghasilkan lebih dari satu baris untuk ditampung di dalam nya. Cursor ada 2 macam yaitu :
a.       Cursor Eksplisit : Cursor yang harus dideklarasikan terlebih dahulu sebelum digunakan, sedangkan

b.      Cursor Implisit : Cursor yang tidak perlu dideklarasikan dulu pada declare section. contoh cursor implisit diasosiasikan dengan perintah SELECT, INSERT, DELETE, dan UPDATE.
 
Contoh-contoh syntax-nya adalah sebagai berikut :


Contoh 1 syntax cursor implisit :

 untuk menampilkan nama depan, nama belakang, gaji, email dan nomor telepon yang ada pada tabel employees yang dibuka dari user hr, sebelum menampilkannya, kita bisa menginputkan nama tersebut.


declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
email employees.email%type;
no_telp employees.phone_number%type;

begin
nama_cari:='&masukkan_nama';
select first_name, last_name, salary, email, phone_number
into nama_depan,nama_belakang, gaji, email, no_telp
from employees
where first_name = nama_cari;
dbms_output.put_line('nama depan : '|| nama_depan );
dbms_output.put_line('nama belakang : '|| nama_belakang );
dbms_output.put_line('email : '|| email );
dbms_output.put_line('no telepon : '|| no_telp );
dbms_output.put_line('gaji : '|| gaji );
end;
 
/ 

hasilnya adalah : 

 
Contoh 2 syntax cursor implisit


   contoh : untuk menginputkan nama, dan memunculkan nama depan, pekerjaannya, dan gaji yang ada di tabel hr.

declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
job jobs.job_title%type;
gaji employees.salary%type;

begin
nama_cari:='&masukkan_nama';
select first_name, job_title, salary
into nama_depan, job, gaji
from employees e inner join jobs j
on (e.job_id=j.job_id)
where first_name=nama_cari;
dbms_output.put_line('pegawai bernama '||nama_depan|| ' pekerjaannya sebagai '|| job || 'dan gajinya adalah   '|| gaji);
end;
/


hasilnya adalah : 
 

 Contoh 3 syntax cursor eksplisit

    untuk menampilkan nama depan dan nama belakang, serta gajinya yang diambil dari tabel user hr.

 
declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
cursor saya is
select first_name, last_name, salary
from employees
where first_name=nama_cari;

begin
nama_cari:='&masukkan_nama';
open saya;
loop
 fetch saya into nama_depan, nama_belakang, gaji;
exit when saya%notfound;
dbms_output.put_line('pegawai bernama ' || nama_depan ||nama_belakang ||'gajinya adalah '|| gaji );
end loop;
close saya;
end;
/


hasilnya adalah :


Tidak ada komentar:

Posting Komentar