Minggu, 20 Oktober 2013



SQL1

Dosen : Titik Lusiani, M.Kom., OCP


Perintah SQL dengan Menggunakan SELECT
Query secara bahasa kamus berarti pertanyaan, tapi di modul ini, query diartikan sebagai permintaan untuk menampilkan data. Adanya SQL, dimungkinkan data dari database dapat ditampilkan dengan berbagai cara. Penulisan perintah SQL untuk query tidak boleh ada kesalahan, bila terjadi kesalahan bias berakibat data tidak keluar sama sekali atau keluar tetapi data tidak sesuai dengan yang diinginkan. Contoh perintah SQL sederhana:
select nip, nama_peserta from peserta_diklat ;
NIP NAMA_PESERTA
060123
Muhammad Shodiq
060136
Kayla Putri
060125
Fahcri Kantana
060140
Andri Sentani
Perintah ini diartikan dengan : cari nip dan nama_peserta dari tabel peserta_diklat. Perintah SQL dapat ditulis dengan huruf besar atau huruf kecil atau kombinasi keduanya, sistem secara otomatis akan melakukan uppercase (merubah jadi huruf besar) dalam proses pembacaan perintah. Titik koma (;) yang terletak diakhir perintah sebagai tanda perintah SQL telah selesai dan siap diproses/dijalankan, dengan tekan tombol ENTER, maka perintah SQL akan dijalankan. Kata kunci (keyword) untuk perintah SQL diatas adalah select dan from, penulisan kata kunci dalam perintah tidak boleh salah, bila terjadi kesalahan akan diperingatkan oleh sistem dan perintah tidak dapat dijalankan.
Sintaks dari perintah SELECT adalah:
Select <nama kolom> from <nama_tabel> ;
Contohnya:
select nama_peserta from peserta_diklat ;
Hasilnya :
NAMA_PESERTA
a. Tanda * (asterik)
Dalam perintah select, tanda * digunakan untuk menampilkan data secara
keseluruhan (semua field ditampilkan dan urutan field sesuai deskripsi tabel).
Contohnya :
select * from peserta_diklat:
Hasil dari select, semua data dari tabel peserta_diklat ditampilkan untuk semua
field dan urutan fieldnya sesuai deskripsi tabel terakhir.
b. Tentukan Field dan Urutan dalam tampilan
Bila dikehendaki hanya beberapa field saja dan urutan field yang ditampilkan tidak seperti deskripsi tabelnya, maka dalam perintah select dituliskan field dan urutan yang ingin ditampilkan, misalnya dari tabel peserta_diklat hanya ingin ditampilkan Field nama_peserta dan nip dengan urutan tampilan nip terlebih dulu, maka perintah SQL ditulis sebagai berikut:
select nip, nama_peserta from peserta_diklat ;
Hasil dari perintah SQL diatas, data ditampilkan sesuai field yang dipilih dan urutan field sesuai yang dikehendaki, hanya saja urutan data masih seperti data aslinya.
c. Tampilkan Data secara Urut
Untuk menampilkan data yang diurutkan berdasarkan satu atau lebih field,

gunakan perintah order by, misalnya data ingin ditampilkan berdasarkan
nama_peserta dan yang ditampilkan hanya field nip dan nama_peserta saja,
maka perintah SQL ditulis sebagai berikut:
select nip, nama_peserta from peserta_diklat order by nama_peserta ;
Hasil dari perintah SQL diatas, ditampilkan data dengan urutan berdasarkan nama_peserta. Perintah order by berpasangan dengan ascending atau descending, defaultnya berpasangan dengan ascending, untuk pasangan default ini boleh dituliskan, boleh juga tidak dituliskan. Dalam penulisan perintah, ascending boleh ditulis dengan asc saja yang berarti data diurutkan dari yang terkecil sampai yang terbesar, sedangkan descending boleh ditulis dengan desc saja yang berarti data diurutkan dari yang terbesar sampai yang terkecil.
Sintaks lengkap untuk order by adalah:
Select kolom1, kolom2, kolom3
 from nama_tabel
 order by kolom_urutan1,
kolom_urutan2.
4. Kondisi
Untuk pencarian sebuah atau sekelompok data dari database, diperlukan satu atau lebih kondisi. Artinya bila diberikan suatu kondisi pada perintah SQL, maka hanya data-data tertentu saja yang akan ditampilkan. Kata kunci untuk pemberian kondisi adalah where yang dituliskan setelah penulisan nama tabel pada perintah SQL.
Sintaks untuk penulisan kondisi pada perintah SQL:
Select nama_kolom from nama_tabel where (kondisi):
Macam-macam kondisi dalam perintah SQL dapat dijelaskan sebagai berikut:
a. Perintah where dengan satu kondisi terdiri dari dua, yaitu setelah perintah where hendak ditampilkan data yang mengandung suatu karakter tertentu dan menggunakan ekspresi aritmatik, contohnya:
select * from peserta_diklat where nama_peserta = \u2018Fachri Kantana\u2019 ;
asil dari perintah SQL diatas, ditampilkan data yang punya nama_peserta
sama dengan Fachri Kantana saja. b. Perintah where dengan satu atau lebih kondisi berupa ekspresi AND dan OR. Ekspresi AND digunakan bila semua kondisi harus terpenuhi, sedangkan OR bila hanya salah satu kondisi saja yang harus terpenuhi. Untuk penjelasan lebih lanjut, tabel peserta_diklat diubah kolom dan datanya menjadi berikut ini:
Contoh perintah SQL untuk menampilkan data dengan dua kondisi yang harus
terpenuhi:


select * from peserta_diklat where kwl = ‘060’ and kpp like ’%2%’;
Hasil dari perintah SQL diatas, ditampilkan data yang punya kwl sama dengan
060 dan kpp yang mengandung angka 2 yaitu 021 dan 022.
Contoh perintah SQL untuk menampilkan data dengan salah satu kondisi saja
yang harus terpenuhi:
select * from peserta_diklat where kwl = ‘010’ or kpp like ’%7%’;
Hasil dari perintah SQL diatas, ditampilkan data yang punya kwl sama dengan
010 atau kpp yang mengandung angka 7 yaitu 075.

Single row-function :

Fungsi Single
-RowFungsi merupakan fitur paling dibutuhkan dari SQL yang dapat digunakan untuk Fungsi SQL
-Melakukan kalkulasi pada data
-Memodifikasi item data secara individual
-Memanipulasi output dari sejumlah baris
-Melakukan format terhadap tanggal
dan angka untuk ditampilkan
-Mengkonversi tipe data pada kolom
Fungsi SQL ada kalanya menggunakan argument dan selalu mengembalikan nilai.
Ada dua tipe fungsi SQL:
a.Fungsi Single Row (fungsi satu baris)Fungsi ini hanya bekerja pada satu baris dan mengembalikan satu hasil per baris. Ada beberapa tipe, diantaranya: character, number, date, dan konversi.
b.Fungsi Multiple Row
Group Function
(fungsi banyak baris)Fungsi ini dapat memanipulasi sejumlah baris dan memberikan satu hasil per sejumlah baris. Fungsi banyak baris akan dijelaskan pada modul yang lain.Fungsi ini digunakan untuk memanipulasi item data, menerima satu atau lebih argument dan mengembalikan satu nilai dari setiap baris yang dikembalikan oleh query. Sintaksnya dapat ditulis sebagai berikut.Fungsi Satu Barisnama_fungsi[(arg1,arg2, ...)]nama_fungsimerupakan nama dari fungsi yang akan digunakanFungsi Single-RowFungsi merupakan fitur paling dibutuhkan dari SQL yang dapat digunakan untuk:Fungsi SQL
-Melakukan kalkulasi pada data
-Memodifikasi item data secara individual
-Memanipulasi output dari sejumlah baris
-Melakukan format terhadap tanggal dan angka untuk ditampilkan

SUBQUERY Pada stage 1 sampai 4, anda dihadapkan dengan pencarian data yang kondisinya masih jelas pada tabel, tetapi tidak menutup kemungkinan bahwa akan muncul kebutuhan data yang kondisinya tidak jelas. Hal ini bisa diselesaikan dengan menggunakan penggabungan 2 (dua) query atau lebih. (memasukkan query yang 1 (satu) ke query yang lain)  Query yang ada di bagian dalam mengembalikan sebuah nilai (atau kumpulan nilai) yang digunakan oleh query bagian luar.  Sebuah subquery adalah sebuah query SELECT yang ditancapkan pada sebuah klausa di query SELECT yang lain. anda dapat meletakkan subquery pada beberapa klausa pada SQL query, meliputi:  Klausa WHERE   Klausa HAVING  Klausa FROM Syntax sederhana untuk menuliskan subquery adalah sebagai berikut: 
OPERATOR yang dimaksud pada Syntax ini bisa meliputi single-row operator
 (>, =, >=, <, <=, <>) dan multiple-row operator (IN, ANY, ALL). Single-row operator digunakan pada subquery yang mengembalikan 1 baris data  (single-row subquery), sedangkan multiple-row operator digunakan pada subquery yang mengembalikan banyak baris data (multiple-row subquery). Terdapat juga subquery yang mengembalikan banyak baris dan banyak kolom. Example For Single-Row Subquery: 1. Menampilkan nim, nama belakang, dan kota_tinggal dari mahasiswa yang tinggal di kota yang sama dengan mahasiswa bernama depan ‘Bambang’ 
2. menampilkan nim, nama belakang dan nilai uas terendah dari mahasiswa yang nilai uasnya lebih tinggi nilai uas terendah matakuliah 'Pemrograman Visual I' 


 

SELECT N.NIM, M.NAMA_BELAKANG, MIN(N.UAS)
 FROM MAHASISWA M JOIN NILAI N  ON M.NIM = N.NIM
GROUP BY N.NIM, M.NAMA_BELAKANG
HAVING MIN(N.UAS) >  (SELECT MIN(NL.UAS)  FROM NILAI NL JOIN MATAKULIAH MK ON NL.KODE_MK = MK.KODE_MK 
WHERE MK.NAMA_MK = 'Pemrograman Visual II'); 
SELECT NIM, NAMA_BELAKANG, KOTA_TINGGAL FROM MAHASISWA WHERE KOTA_TINGGAL =  (SELECT KOTA_TINGGAL FROM MAHASISWA WHERE NAMA_DEPAN = 'Bambang');
February 4, 2013 [STRUCTURE QUERY LANGUAGE  MODULE] 
Example For Multiple-Row Subquery: 1. Menampilkan nim, nama lengkap, kode mk, nama mk, dan nilai uas yang dari mahasiswa yang mengambil mata kuliah yang diadakan pada semester 4. 
2. Menampilkan semua nim, nama belakang, dan tanggal lahir mahasiswa yang bulan lahirnya tidak sama dengan bulan lahir mahasiswa prodi SI Desain Komunikasi dan Visual 
 
SELECT NIM, NAMA_BELAKANG, TGL_LAHIR FROM MAHASISWA  WHERE TO_CHAR(TGL_LAHIR, 'MM') <> ALL (SELECT TO_CHAR(M.TGL_LAHIR, 'MM')  FROM MAHASISWA M JOIN PROGRAM_STUDI P ON M.KODE_PRODI = P.KODE_PRODI WHERE P.NAMA_PRODI = 'SI Desain Komunikasi dan Visual');
SELECT MHS.NIM, MHS.NAMA_DEPAN ||' '|| MHS.NAMA_BELAKANG "NAMA LENGKAP", N.KODE_MK, MK.NAMA_MK, N.UAS FROM MAHASISWA MHS JOIN NILAI N ON MHS.NIM = N.NIM JOIN MATAKULIAH MK ON MK.KODE_MK = N.KODE_MK WHERE N.KODE_MK IN (SELECT KODE_MK FROM MATAKULIAH WHERE SEMESTER = 4);

3. Menampilkan semua nim, nama belakang, dan nilai uas tertinggi dari matakuliah yang dosennya mengajar pada hari rabu.  
Example For a subquery on FROM clause: Menampilkan kode mk dan nama mk yang memiliki rata-rata nilai akhir paling tinggi dari semua matakuliah.  
2. Set Operator Set operator menggabungkan 2 (dua) atau lebih query menjadi 1 (satu) hasil. Semua set operator memiliki tingkatan yang sama, jika sebuah query memiliki banyak set operator, maka Oracle Server akan membaca query dari kiri (atau atas) ke kanan (bawah), jika tidak ada tanda kurung ( ) yang digunakan untuk mengurutkan.
SELECT KODE_MK, NAMA_MK, MAX(RATA2_NILAI) FROM (SELECT MK.KODE_MK, MK.NAMA_MK, AVG(((N.TUGAS*0.4)+(N.UAS*0.3)+(N.UTS*0 .3))) AS RATA2_NILAI FROM NILAI N JOIN MATAKULIAH MK ON N.KODE_MK = MK.KODE_MK GROUP BY MK.KODE_MK, MK.NAMA_MK) GROUP BY KODE_MK, NAMA_MK;
SELECT M.NIM, M.NAMA_BELAKANG, max(N.UAS) FROM MAHASISWA M, NILAI N WHERE M.NIM = N.NIM AND N.NID = ANY (SELECT NID FROM PLOTTING_AJAR WHERE HARI = 'Rabu') GROUP BY M.NIM, M.NAMA_BELAKANG;
February 4, 2013 [STRUCTURE QUERY LANGUAGE  MODULE] 
LabKom STIKOM Surabaya | Joining Multiple Query 
58   
Khusus untuk operator INTERSECT, anda harus menggunakan tanda kurung ( ) untuk mengurutkan urutan membaca query Jika operator INTERSECT digunakan bersamaan dengan set operator lain. 
2.1 UNION Operator Operator UNION mengembalikan semua baris data yang di-SELECT oleh kedua query dan menghilangkan semua baris data kembar. Example: Menampilkan nim dari semua mahasiswa yang digabungkan dengan nim yang sudah masuk nilainya. 

UNION ALL Operator Operator UNION ALL mengembalikan semua baris data yang di- SELECT oleh kedua query termasuk semua baris data kembar. Sebagai catatan, keyword DISTINCT tidak dapat digunakan dengan operator UNION ALL..  Example: Menampilkan semua nim, nama mahasiswa, nid, dan nama dosen   
2.3 INTERSECT Operator Operator INTERSECT hanya mengembalikan semua baris data yang kembar saja dari kedua query.  Example: Menampilkan nama dosen yang sudah melakukan plotting ajar 
 
SELECT D.NID, D. NAMA_DOSEN FROM DOSEN D WHERE D.NID IN (SELECT DS.NID FROM DOSEN DS INTERSECT SELECT NID FROM PLOTTING_AJAR);
SELECT NIM, NAMA_DEPAN || ' ' || NAMA_BELAKANG AS NAMA FROM MAHASISWA UNION ALL SELECT NID, NAMA_DOSEN FROM DOSEN;
February 4, 2013 [STRUCTURE QUERY LANGUAGE  MODULE] 
2.4 MINUS Operator Operator MINUS mengembalikan baris data dari query pertama, yang tidak ada di query kedua. (hasil query pertama – hasil query kedua). Jika anda menggunakan klausa WHERE pada Operasi MINUS, maka semua kolom yang ada di klausa WHERE harus dimasukkan ke Klausa SELECT. Example Menampilkan nid dan nama_dosen yang belum pernah melakukan plotting ajar 
  select nid, nama_dosen from dosen where nid in  (select nid from dosen minus select nid from plotting_ajar);


Pemrograman Basis Data

Dosen : Titik Lusiani, M.Kom., OCP

1.    Your stored procedure, GET_BUDGET, has a logic problem and must be modified. The script that contains the procedure code has been misplaced. Which data dictionary view can you query to capture the source code for this procedure?
    1. USER_SOURCE
  User source memuat nama,type procedure,line number dan isi dari user source
2.    The database administrator has informed you that the CREATE PROCEDURE privilege has been granted to your account. Which objects can you now create?
D.       procedures, functions, and packages
Privilege (Hak Akses) merupakan tipe khusus dari pernyataan SQL untuk mengakses object dari user lain. dua jenis privilege yaitu : system privilege dan object privilege.
Ø System privilege adalah hak untuk  user agar bisa mengeksekusi perintah ke databasenya. ada tujuh system privilege yang disediakan oleh ORACLE.
                            1.       create table = ijin buat table
                            2.       create any tabel= ijin buat tabel di user lain
                            3.       create sequence = ijin buat sequence
                            4.       create view = ijin buat view
                            5.       create indextype= ijin buat index
                            6.       create procedure= ijin buat stored procedure
                            7.       create session = ijin login database

Ø Object privilege : hak akses user unutk bisa mengakses database user lain berikut object privilege yang terdapat dalam oracle :
·         select = ijin melihat data
·         insert = ijin memasukkan data
·         update = ijin melakukan perubahan data
·         delete = ijin menghapus data
·         alter = ijin mengubah struktur table
·         index = ijin membuat index
·         references = ijin membuat foreign key pada kolom tabel
3.    Which data dictionary table can you query to determine all stand-alone procedures that reference the THEATER_PCK package?
D.    USER_DEPENDENCIES
 User_dependencies merupakan data dictionary yang saling terkait antar object.
4.    Which data dictionary view can you query to examine all the dependencies between the objects that you own?
C.  USER_DEPENDENCIES
          User_dependencies dapat melakukan refenerce untuk data dictionary view.
5.     Due to a change to a particular table, you are concerned with the number of stored procedures and functions that may have been affected. Which table can you query to check the status of each subprogram and determine which procedures and functions must be recompiled?
C.  USER_OBJECTS
     User_object memuat informasi tentang semua object yang dimiliki, valid tidaknya suatu procedure.
6.    You have lost the script file that contains the source code for the THEATER_PCK package. Which command will produce the source code stored in the database?
A.    SELECT text FROM user_source WHERE name = 'THEATER_PCK';
          Perintah yang digunakan untuk memanggil tehater_pck adalah seperti syntax diatas.
7.    Which view can you query to determine the validity of a particular procedure?
C.USER_OBJECTS
          User_object digunakan untuk memvalidasi suatu prosedure.
8.    Which data dictionary view must you query to determine when a particular procedure or function was created?
C.USER_OBJECTS
          User_object melihat semua informasi tentang object yang dimiliki.
9.        All users in the HR_EMP role have UPDATE privileges on the EMPLOYEE table. You create the UPDATE_EMPLOYEE procedure. HR_EMP users should only be able to update the EMPLOYEE table using this procedure. Which two statements should you execute? (Choose two.)
C.REVOKE UPDATE ON employee FROM hr_emp;
E.GRANT EXECUTE ON update_employee TO hr_emp;
    GRANT, merupakan perintah yang digunakan untuk mengizinkan seorang user
untuk mengakses tabel pada database tertentu. Seorang administrator database biasanya akan melakukan pembatasan hak akses user terhadap tabel dalam database. Tujuan akhirnya adalah untuk manajemen keamanan database.
REVOKE, merupakan perintah yang digunakan untuk mencabut hak akses seorang user pada tabel dalam database tertentu. REVOKE digunakan untuk mencabut hak akses seorang user mengakses tabel dalam database tertentu. Pencabutan hak akses ini dengan klausa REVOKE. Pemakai adalah nama user yang akan dicabut hak aksesnya.
10.    Which statement concerning the use of a procedure is true?
C . A user needs only the privilege to execute the procedure and does not need privileges on the underlying tables.
User menggunakan hak akses (privilege) untuk membuat prosedure. Pada lingkungan multi-user, dapat mengatur keamanan dari akses database dan mengontrol akses user. Security dari database Oracle mengijinkan untuk:
·         Mengontrol akses ke database
·         Memberikan akses terhadap objek-objek tertentu di dalam database
·         Mengkonfirmasi privilege yang diberikan dan diterima melalui data dictionary
·         Menciptakan synonym untuk objek-objek database
11.    Examine this procedure:
            CREATE OR REPLACE PROCEDURE update_theater (v_name IN VARCHAR2) IS
            BEGIN
            DELETE theater WHERE id = 34;
            END update_theater;
            This procedure is owned by PROD. The user JSMITH must execute this procedure. Which command(s) must PROD execute to grant the necessary privileges to JSMITH?
A.    GRANT EXECUTE ON update_theater TO jsmith
GRANT EXECUTE digunakan untuk memberi hak akses melalui sebuah prosedure yang bernama update_theater kepada JSMITH.
12.    You have just successfully dropped the CALC_COMM procedure and deleted the script file containing the source code. Which command can you execute to recover this procedure?
D.  Only the database administrator can recover this procedure using backups.
Drop digunakan untuk melakukan penghapusan tabel. Melakukan penghapusan table dengan perintah DROP, berarti mengerjakan hal berikut :
->Semua data dan struktur dari table akan dihapus
->Semua transaksi pending akan di-commit
->Semua indeks akan dihapus
->Perintah drop ini tidak bisa di-rollback
Hanya database administrator yang dapat merecovernya.
13.              Examine this procedure:
            CREATE OR REPLACE PROCEDURE remove_department (v_deptno IN NUMBER) IS
            BEGIN
            DELETE dept WHERE deptno = v_deptno;
            END;
            After executing this procedure, you receive this message:
            ORA-02292: integrity constraint (SCOTT.FK_DEPTNO) violated - child record found
            What must be added to the procedure to handle this error?
D.      Declare a new exception and associate it with error code -2292. Create an exception section, and add code to handle this non-predefined exception that you just declared.
Handling Exceptions merupakan salah satu kelebihan dari PL/SQL yang digunakan untuk menangani error yang terjadi pada saat run time.
Sebagai contoh, pada saat kita menuliskan sebuah query, dan data tersebut tidak ditemukan di dalam database, maka oracleakan membangkitkan eksepsi NO_DATA_FOUND  dengan kode ORA-01403 yang berarti data tidak ditemukan.
16.    Examine this procedure:
            CREATE PROCEDURE add_theater IS
            BEGIN
            INSERT INTO theater
            VALUES (35, 'Riverplace Theatre', '1222 River Drive, Austin, Tx.');
            END;
            This procedure already exists in the database. You have made a change to the code and want to recreate the procedure. Which command must you now use to prevent an error?
D .CREATE OR REPLACE PROCEDURE
Command yang digunakan untuk mengubah database yang telah ada sebelumnya yaitu menggunakan CREATE or REPLACE PROCUDERE.
Schema Trigger:
CREATE [ OR REPLACE ] TRIGGER [ schema. ]trigger
{ BEFORE | AFTER | INSTEAD OF }
{ dml_event_clause
| { ddl_event [ OR ddl_event ]...
          | database_event [ OR database_event ]...
  } ON { [ schema. ]SCHEMA
           | DATABASE
           }
}
[ WHEN (condition) ]
{ pl/sql_block | call_procedure_statement } ;
19.              You execute this code:
          CREATE OR REPLACE PROCEDURE find_seats_sold (v_movie_id IN NUMBER DEFAULT 34) IS
          v_seats_sold gross_receipt.seats_sold%TYPE;
          BEGIN
          null;
          END;
          Which statement is true?
A.    The statement compiles, and the procedure is created.
Pernyataan yang benar yang benar yang dapat dijalankan dari code diatas yaitu procedure berhasil dibuat.
23.    Which statement about formal parameters is true?
B.  An IN OUT formal parameter does not require a value before returning to the calling environment.
Perlu diketahui lebih dahulu, parameter yang terdapat pada Procedure dinamakan Formal Parameter. Sedangkan Parameter yang terdapat pada si pemanggil Procedure adalahActual Parameter.
Tipe Parameter pada Procedure ada 3 :
  1. IN parameter, Merupakan Tipe parameter yang didefinisikan pada aktual parameter untuk kemudian ditangkap oleh formal parameter. Kita tidak perlu menuliskan IN untuk mendefinisikan parameter tersebut, karena parameter IN telah didefinisikan secara DEFAULT oleh Oracle.
  2. OUT parameter. Merupakan  tipe parameter pada procedure yang nilainya dapat digunakan oleh si pemanggil procedure dan bisa dibilang OUT parameter merupakan kebalikan dari IN parameter.
  3. IN OUT parameter. Tipe parameter yang digunakan untuk mengirimkan sebuah nilai ke procedure yang kemudian akan diproses dan dikembalikan kepada si pemanggil procedure.
  1. Examine this procedure:
            CREATE OR REPLACE PROCEDURE find_seats_sold
            (v_movie_id IN NUMBER DEFAULT 34, v_theater_id IN NUMBER) IS
            v_seats_sold gross_receipt.seats_sold%TYPE;
            BEGIN
            SELECT seats_sold INTO v_seats_sold
            FROM gross_receipt
            WHERE movie_id = v_movie_id AND theater_id = v_theater_id;
            END;
            Which command will successfully invoke this procedure in SQL*Plus?
     C.     EXECUTE find_seats_sold (v_theater_id => 500);
Command yang digunakan untuk memanggil procedure find_seat_sold adalah EXECUTE find_seat_sold(v_thetater_id =>500);,v_movie_id telah diisi dengan 34 karena di default dan v_theater_id diisi 500.
27.              Which statement about declaring parameters is true?
B .Data type and maximum length are required.
Pendeklarasian parameter yang benar dalam oracle dengan tipe varchar2 yaitu harus menambahkan data type dan maximum length.
29.    The CALC_COMM procedure is no longer needed and should be removed. Which command will successfully remove this procedure from the database?
A.    DROP calc_comm;
DROP digunakan untuk menghapus suatu object database tertentu.
3     30.  Examine this procedure:
     CREATE PROCEDURE add_theater IS
     BEGIN
     INSERT INTO theater
     VALUES (35, 'Riverplace Theatre', '1222 River Drive, Austin, Tx.');
     END;
     Which three statements about this procedure are true? (Choose three.)
A.    The ADD_THEATER procedure is written in SQL.
B.     The ADD_THEATER procedure can be shared by multiple programs.
C.     The ADD_THEATER procedure will be stored in the database as a schema object.