Implisit dan Explisit
Dalam pengerjaan perintah-perintah untuk menampilkan data Implisit & explisit dalam oracle ada beberapa hal yang perlu diperhatikan, diantaranya:
kota locations.city%type;
kode_pos locations.postal_code%type;
provinsi locations.state_province%type;
begin
kota:='&masukkan_kota';
select city, postal_code, state_province
into kota, kode_pos, provinsi
from locations
where city = kota;
dbms_output.put_line('Kota '|| kota ||' yang memiliki kode pos '|| kode_pos ||' terletak di provinsi '||provinsi);
end;
/
kota locations.city%type;
kode_pos locations.postal_code%type;
negara countries.country_name%type;
begin
kota:='&masukkan_kota';
select city, postal_code, country_name
into kota, kode_pos, negara
from locations l join countries c on(l.country_id=c.country_id)
where city = kota;
dbms_output.put_line('Kota '|| kota ||' yang memiliki kode pos '|| kode_pos ||' terletak di negara '||negara);
end;
/
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
cursor nama is
select first_name, last_name, salary
from employees
where first_name = nama_depan;
begin
nama_depan:='&masukkan_nama';
OPEN nama;
Loop
FETCH nama into nama_depan, nama_belakang, gaji;
exit when nama%notfound;
dbms_output.put_line('Pegawai dengan nama '||nama_depan ||' '|| nama_belakang||' memiliki gaji sebesar USD '||gaji);
end Loop;
CLOSE nama;
end;
/
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
departemen departments.department_name%type;
provinsi locations.state_province%type;
cursor kerja is
select first_name, last_name, department_name, state_province
from employees e join departments d on(e.department_id=d.department_id)
join locations l on(d.location_id=l.location_id)
where first_name = nama_depan;
begin
nama_depan:='&masukkan_nama';
OPEN kerja;
Loop
FETCH kerja into nama_depan, nama_belakang, departemen, provinsi;
exit when kerja%notfound;
dbms_output.put_line('Pegawai dengan nama '||nama_depan ||' '|| nama_belakang||' bekerja di department '||departemen||' yang terletak di provinsi '||provinsi);
end Loop;
CLOSE kerja;
end;
/
- periksa apakah user hr dalam oracle telah ter-unlock atau belum.
- usahakan untuk mengetahui cara melihat data-data yang ada di dalam user hr tersebut
- usahakan untuk mempelajari syntax perintah Select.
- saat menampilkan data explisit dibutuhkan beberapa urutan syntax tambahan dibandingkan saat menampilkan data implisit. syntax tersebut adalah DOFC yaitu DECLARE, OPEN, FETCH, dan CLOSE.
- Perintah untuk menampilkan data implisit 1 tabel:
kota locations.city%type;
kode_pos locations.postal_code%type;
provinsi locations.state_province%type;
begin
kota:='&masukkan_kota';
select city, postal_code, state_province
into kota, kode_pos, provinsi
from locations
where city = kota;
dbms_output.put_line('Kota '|| kota ||' yang memiliki kode pos '|| kode_pos ||' terletak di provinsi '||provinsi);
end;
/
- Perintah untuk menampilkan data implisit 2 tabel:
kota locations.city%type;
kode_pos locations.postal_code%type;
negara countries.country_name%type;
begin
kota:='&masukkan_kota';
select city, postal_code, country_name
into kota, kode_pos, negara
from locations l join countries c on(l.country_id=c.country_id)
where city = kota;
dbms_output.put_line('Kota '|| kota ||' yang memiliki kode pos '|| kode_pos ||' terletak di negara '||negara);
end;
/
- Perintah untuk menampilkan data explisit 1 tabel:
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
cursor nama is
select first_name, last_name, salary
from employees
where first_name = nama_depan;
begin
nama_depan:='&masukkan_nama';
OPEN nama;
Loop
FETCH nama into nama_depan, nama_belakang, gaji;
exit when nama%notfound;
dbms_output.put_line('Pegawai dengan nama '||nama_depan ||' '|| nama_belakang||' memiliki gaji sebesar USD '||gaji);
end Loop;
CLOSE nama;
end;
/
- Perintah untuk menampilkan data explisit 3 tabel:
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
departemen departments.department_name%type;
provinsi locations.state_province%type;
cursor kerja is
select first_name, last_name, department_name, state_province
from employees e join departments d on(e.department_id=d.department_id)
join locations l on(d.location_id=l.location_id)
where first_name = nama_depan;
begin
nama_depan:='&masukkan_nama';
OPEN kerja;
Loop
FETCH kerja into nama_depan, nama_belakang, departemen, provinsi;
exit when kerja%notfound;
dbms_output.put_line('Pegawai dengan nama '||nama_depan ||' '|| nama_belakang||' bekerja di department '||departemen||' yang terletak di provinsi '||provinsi);
end Loop;
CLOSE kerja;
end;
/
Komentar
Posting Komentar