Rabu, 27 Oktober 2010

While Loop


DECLARE
i NUMBER(5);
hasil NUMBER(5);
x NUMBER(3);

BEGIN
x:=&angka;
i:=1;
WHILE i <= x LOOP
DBMS_OUTPUT.PUT_LINE(i|| hasil );
i := i + 3;
END LOOP;
END;
/




Cursor Implicit

cursor implisit sama dengan cara biasa tetapi pada kursor ini kita tidak perlu mendifinisikan bentuk dan jumlah variabel tersebut. tetapi hanya dapat menampilkan 1 data saja, jika pada tabel terdapat nama yang sama lebih dari 1 maka data tidak akan keluar.
contoh :

pada table hr dibuat perintah untuk mencari nama depan employees. tampilan nya adalah nama depan email dan nomor telepon employees tersebut.



declare
nama_cari employees.first_name%type;

nama_depan employees.first_name%type;
email employees.email%type;
telepon employees.phone_number%type;
begin
nama_cari:='&Masukkan_nama';
select first_name,email,phone_number
into nama_depan,email,telepon
from employees where first_name=nama_cari;
dbms_output.put_line('nama :'||nama_depan);
dbms_output.put_line('email :'||email);
dbms_output.put_line('telepon :'||telepon);
end;

Cursor Explicit


DOFC (Declare, Open, Fetch, Close)


sama halnya seperti cursor implisit namun perbedaan dari cursor explicit, apabila ada data yang sama misal nama yang sama lebih dari 1 orang maka data nama tersebut akan di tampilan semua.

misalkan pada tabel employees terdapat 3 nama peter maka dengan menggunakan cursor explicit data dari ketiga nama peter tersebut masing-masing akan di tampilkan.




declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
email employees.email%type;
telepon employees.phone_number%type;
cursor ANU is
select first_name,email,phone_number
from employees
where first_name=nama_cari;
begin
nama_cari:='&Masukkan_nama';
open ANU;
LOOP
fetch ANU into nama_depan,email,telepon;
exit when ANU%notfound;
dbms_output.put_line('-----------------------------------');
dbms_output.put_line('nama :'||nama_depan);
dbms_output.put_line('email :'||email);
dbms_output.put_line('telepon :'||telepon);
dbms_output.put_line('-----------------------------------');
end loop;
close ANU;
end;
/

Selasa, 12 Oktober 2010

Anonymous PL/SQL
dengan menggunakan syntax If


Sama seperti posting sebelumnya pada kali ini saya akan menambahkan syntax pada sql yaitu if

declare

A varchar(15);

B number(10);

C float(10);

D float(10);


begin

A:='&nama ';

B:=&harga_buku;

C:=&diskon;

D:=B-(B*C/100);



dbms_output.put_line(A);

dbms_output.put_line('Harga Buku : '||B);

dbms_output.put_line('Diskon(%) : ' ||C||'%');

dbms_output.put_line('Selamat Datang '||A);

dbms_output.put_line('Harga yang harus di bayar Rp.'||D);

if(C<=25) then dbms_output.put_line('Pelit Ahhh'); else dbms_output.put_line('ichh baik nyaaa');

end if;

end; /


pada syntax if di buat setelah perintah inputan
dan end if digunakan sebagai akhir dari syntax if
pada contoh di atas merupakan query toko buku dimana harus di masukan nama
harga buku dan diskon
apabila diskon lebih dari 25% maka syntax if akan mengeluarkan hasil "ichh Baiknya"
dan apabila diskon yg di inputkan kurang dari 25% maka program akan mengeluarkan hasil "Pelit Ahh"

sehingga syntax if digunakan untuk suatu keadaan yang keadaan tsb bisa lebih dari 2 keadaan
dengan menggunakan if dan else atau if dan else if..


Anonymous PL/SQL

Pada posting ini saya akan memberikan sedikit serba serbi dan contoh mengenai anonymus scripting/query sql.

Anonymus scripting merupakan salah satu jenis skripting sql dimana terdiri dari 3 bagian

yaitu :

1. declare :
pada bagian ini merupakan pendefinisian variable.
2. begin : pada bagian ini merupakan pendefinisian "value" dari suatu variable.
3. end : sebagai penutup script





Contoh :

declare
A number(10);
B varchar(20);

begin
A:=&nim;
B:='&nama ';

dbms_output.put_line('Hai, nama saya ' ||B||'dengan nim '||A);
dbms_output.put_line('Saya adalah mahasiswa Politeknik Telpon');

end;
/

setelah query di buat maka di simpan dengan tipe data .sql agar pada saat di jalankan
file scripting tsb bisa di tampilkan.

untuk menampilkan hasil, setelah log in sqlplus maka kita harus mengetikkan

set serveroutput on gunanya agar script yang kita buat bisa di tampilkan pada layar.

setelah itu cara memanggil script yang sudah di buat yaitu kita mengcopy kan address
file pada komputer kita seperti berikut :
SQL> @'<.......address alamat dokumen>'


sebagai contoh :

contoh :

declare

A number(3);

begin
A:=10;
dbms_output.put_line('Bismillah,ini angka'||a);

end;
/

setelah itu file di save dgn extensi .sql

maka tampilan pada cmd sebagai berikut



Pada nomor 1 adalah set serveroutput on untuk bisa menampilkan script
Pada nomor 2 merupakan address dokumen
Pada nomor 3 adalah hasil tampilan
Bismillah, ini angka 10


Semoga bermanfaat :)