Unduh PDF
1) Apa itu PL SQL?
PL SQL adalah bahasa prosedural yang memiliki SQL interaktif, serta konstruksi bahasa pemrograman prosedural seperti percabangan dan iterasi bersyarat.
2) Bedakan antara% ROWTYPE dan TYPE RECORD.
% ROWTYPE digunakan saat kueri mengembalikan seluruh baris tabel atau tampilan.
TYPE RECORD, di sisi lain, digunakan saat kueri mengembalikan kolom dari tabel atau tampilan yang berbeda.
Misalnya. TYPE r_emp adalah RECORD (tipe sno smp.smpno%, tipe sname smp sname%)
e_rec smp% ROWTYPE
Kursor c1 dipilih smpno, dept dari smp;
e_rec c1% ROWTYPE
3) Jelaskan penggunaan kursor.
Kursor adalah area pribadi bernama dalam SQL tempat informasi dapat diakses. Mereka diminta untuk memproses setiap baris secara individual untuk kueri yang menghasilkan beberapa baris.
4) Tampilkan kode kursor untuk loop.
Cursor mendeklarasikan% ROWTYPE sebagai indeks loop secara implisit. Ini kemudian membuka kursor, mendapatkan baris nilai dari set aktif di bidang rekaman dan menutup saat semua rekaman diproses.
Misalnya. UNTUK smp_rec DI C1 LOOP
totalsal = totalsal + smp_recsal;
ENDLOOP;
5) Jelaskan penggunaan pemicu database.
Unit program PL / SQL yang terkait dengan tabel database tertentu disebut pemicu database. Ini digunakan untuk:
1) Modifikasi data audit.
2) Catat peristiwa secara transparan.
3) Menerapkan aturan bisnis yang kompleks.
4) Menjaga tabel replika
5) Turunkan nilai kolom
6) Menerapkan otorisasi keamanan yang kompleks
6) Apa dua jenis pengecualian.
Kesalahan penanganan bagian dari blok PL / SQL disebut Exception. Mereka memiliki dua jenis: user_defined dan predefined.
7) Tampilkan beberapa pengecualian yang telah ditentukan sebelumnya.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
TIDAK ADA DATA DITEMUKAN
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
INVALID_NUMBER
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
dll.
8) Jelaskan Raise_application_error.
Ini adalah prosedur dari paket DBMS_STANDARD yang memungkinkan penerbitan pesan kesalahan yang ditentukan pengguna dari pemicu database atau sub-program yang disimpan.
9) Tunjukkan bagaimana fungsi dan prosedur dipanggil dalam blok PL SQL.
Fungsi disebut sebagai bagian dari ekspresi.
total: = hitung_sal ('b644')
Prosedur disebut sebagai pernyataan dalam PL / SQL.
hitung_bonus ('b644');
10) Jelaskan dua tabel virtual yang tersedia pada saat eksekusi pemicu database.
Kolom tabel disebut THEN.column_name dan NOW.column_name.
Untuk SISIPKAN pemicu terkait, nilai NOW.column_name hanya tersedia.
Untuk HAPUS pemicu terkait, MAKA. Nilai nama_kolom hanya tersedia.
Untuk pemicu terkait UPDATE, kedua kolom Tabel tersedia.
11) Apa aturan yang akan diterapkan ke NULL saat melakukan perbandingan?
1) NULL tidak pernah BENAR atau SALAH
2) NULL tidak boleh sama atau tidak sama dengan nilai lain
3) Jika nilai dalam ekspresi adalah NULL, ekspresi itu sendiri mengevaluasi ke NULL kecuali untuk operator penggabungan (||)
12) Bagaimana proses PL SQL dikompilasi?
Proses kompilasi mencakup proses pemeriksaan sintaks, pengikatan, dan pembuatan kode-p.
Pemeriksaan sintaks memeriksa kode PL SQL untuk kesalahan kompilasi. Ketika semua kesalahan diperbaiki, alamat penyimpanan diberikan ke variabel yang menyimpan data. Ini disebut Binding. P-code adalah daftar instruksi untuk mesin PL SQL. P-code disimpan dalam database untuk blok bernama dan digunakan saat eksekusi berikutnya.
13) Membedakan antara kesalahan sintaks dan runtime.
Kesalahan sintaks dapat dengan mudah dideteksi oleh kompiler PL / SQL. Misalnya, salah ejaan.
Kesalahan runtime ditangani dengan bantuan bagian penanganan pengecualian di blok PL / SQL. Misalnya, pernyataan SELECT INTO, yang tidak mengembalikan baris apa pun.
14) Jelaskan Commit, Rollback dan Savepoint.
Untuk pernyataan COMMIT, berikut ini benar:
- Pengguna lain dapat melihat perubahan data yang dilakukan oleh transaksi tersebut.
- Kunci yang diperoleh dari transaksi dilepaskan.
- Pekerjaan yang dilakukan oleh transaksi menjadi permanen.
Pernyataan ROLLBACK dikeluarkan saat transaksi berakhir, dan berikut ini benar.
- Pekerjaan yang dilakukan dalam transisi dibatalkan seolah-olah tidak pernah dilakukan.
- Semua kunci yang diperoleh dengan transaksi dilepaskan.
Ini membatalkan semua pekerjaan yang dilakukan oleh pengguna dalam sebuah transaksi. Dengan SAVEPOINT, hanya sebagian dari transaksi yang dapat dibatalkan.
15) Tentukan Kursor Implisit dan Eksplisit.
Kursor tersirat secara default. Pengguna tidak dapat mengontrol atau memproses informasi di kursor ini.
Jika kueri mengembalikan beberapa baris data, program mendefinisikan kursor eksplisit. Ini memungkinkan aplikasi untuk memproses setiap baris secara berurutan saat kursor mengembalikannya.
16) Jelaskan kesalahan tabel mutasi.
Ini terjadi ketika pemicu mencoba memperbarui baris yang sedang digunakan. Ini diperbaiki dengan menggunakan tampilan atau tabel sementara, jadi database memilih satu dan memperbarui yang lain.
17) Kapan pernyataan menyatakan diperlukan?
Pernyataan MENYATAKAN digunakan oleh blok anonim PL SQL seperti dengan berdiri sendiri, prosedur tidak disimpan. Jika digunakan, itu harus diutamakan dalam file yang berdiri sendiri.
18) Berapa banyak pemicu yang dapat diterapkan ke tabel?
Maksimal 12 pemicu dapat diterapkan ke satu tabel.
19) Apa pentingnya SQLCODE dan SQLERRM?
SQLCODE mengembalikan nilai jumlah kesalahan untuk kesalahan yang terakhir ditemui sedangkan SQLERRM mengembalikan pesan untuk kesalahan terakhir.
20) Jika kursor terbuka, bagaimana kita bisa menemukannya di PL SQL Block?
variabel status kursor% ISOPEN dapat digunakan.
21) Menampilkan dua pengecualian kursor PL / SQL.
Cursor_Already_Open
Invaid_cursor
22) Operator apa yang menangani NULL?
NVL mengubah NULL ke nilai lain yang ditentukan.
var: = NVL (var2, 'Hi');
IS NULL dan IS NOT NULL dapat digunakan untuk memeriksa secara khusus untuk melihat apakah nilai suatu variabel adalah NULL atau tidak.
23) Apakah SQL * Plus juga memiliki PL / SQL Engine?
Tidak, SQL * Plus tidak memiliki PL / SQL Engine yang tertanam di dalamnya. Dengan demikian, semua kode PL / SQL dikirim langsung ke mesin database. Ini jauh lebih efisien karena setiap pernyataan tidak dilepaskan satu per satu.
24) Paket apa yang tersedia untuk pengembang PL SQL?
Serangkaian paket DBMS_, seperti, DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Jelaskan 3 bagian dasar pemicu.
- Pernyataan atau peristiwa pemicu.
- Batasan
- Sebuah aksi
26) Apa fungsi karakter?
INITCAP, UPPER, SUBSTR, LOWER dan LENGTH adalah semua fungsi karakter. Fungsi grup memberikan hasil berdasarkan grup baris, bukan baris individual. Mereka adalah MAX, MIN, AVG, COUNT dan SUM.
27) Jelaskan TTITLE dan BTITLE.
Perintah TTITLE dan BTITLE yang mengontrol header dan footer laporan.
28) Menampilkan atribut kursor PL / SQL.
% ISOPEN: Memeriksa apakah kursor terbuka atau tidak
% ROWCOUNT: Jumlah baris yang diperbarui, dihapus atau diambil.
% DITEMUKAN: Memeriksa apakah kursor telah mengambil baris apa pun. Memang benar jika baris diambil
% TIDAK DITEMUKAN: Memeriksa apakah kursor telah mengambil baris apa pun. Benar jika baris tidak diambil.
29) Apa itu Intersect?
Perpotongan adalah produk dari dua tabel dan hanya mencantumkan baris yang cocok.
30) Apa urutannya?
Urutan digunakan untuk menghasilkan nomor urut tanpa overhead penguncian. Kekurangannya adalah nomor urut hilang jika transaksi dibatalkan.
31) Bagaimana Anda mereferensikan nilai kolom SEBELUM dan SETELAH Anda memasukkan dan menghapus pemicu?
Menggunakan kata kunci "new.column name", pemicu dapat mereferensikan nilai kolom dengan koleksi baru. Dengan menggunakan kata kunci "old.column name", mereka dapat mereferensikan nilai kolom berdasarkan koleksi lama.
32) Apa kegunaan dari kata kunci SYSDATE dan USER?
SYSDATE mengacu pada tanggal sistem server saat ini. Ini adalah kolom semu. USER juga merupakan kolom semu tetapi merujuk ke pengguna saat ini yang masuk ke sesi. Mereka digunakan untuk memantau perubahan yang terjadi di tabel.
33) Bagaimana ROWID membantu menjalankan kueri lebih cepat?
ROWID adalah alamat logis dari sebuah baris, ini bukan kolom fisik. Ini terdiri dari nomor blok data, nomor file dan nomor baris di blok data. Dengan demikian, waktu I / O diminimalkan untuk mengambil baris, dan menghasilkan kueri yang lebih cepat.
34) Untuk apa link database digunakan?
Tautan database dibuat untuk membentuk komunikasi antara berbagai database, atau lingkungan yang berbeda seperti pengujian, pengembangan, dan produksi. Tautan database bersifat read-only untuk mengakses informasi lain juga.
35) Apa yang dilakukan dengan mengambil kursor?
Mengambil kursor membaca Hasil Set baris demi baris.
36) Apa yang dilakukan menutup kursor?
Menutup kursor akan menghapus area SQL pribadi serta mengalokasikan memori
37) Jelaskan penggunaan Control File.
Ini adalah file biner. Ini mencatat struktur database. Ini termasuk lokasi dari beberapa file log, nama dan cap waktu. Mereka dapat disimpan di lokasi yang berbeda untuk membantu dalam pengambilan informasi jika satu file rusak.
38) Jelaskan Konsistensi
Konsistensi menunjukkan bahwa data tidak akan direfleksikan ke pengguna lain sampai data tersebut komit, sehingga konsistensi tetap terjaga.
39) Perbedaan antara blok Anonymous dan sub-program.
Blok anonim adalah blok tanpa nama yang tidak disimpan di mana pun saat sub-program dikompilasi dan disimpan dalam database. Mereka dikompilasi pada saat runtime.
40) Perbedaan antara DEKODE dan KASUS.
Pernyataan DECODE dan CASE sangat mirip, tetapi CASE adalah versi lanjutan dari DECODE. DECODE tidak mengizinkan pernyataan pengambilan keputusan sebagai gantinya.
pilih decode (totalsal = 12000, 'high', 10000, 'medium') sebagai decode_tesr dari smp dimana smpno in (10,12,14,16);
Pernyataan ini mengembalikan kesalahan.
CASE langsung digunakan di PL SQL, tetapi DECODE digunakan di PL SQL hanya melalui SQL.
41) Jelaskan transaksi otonom.
Transaksi otonom adalah transaksi independen dari transaksi utama atau induk. Itu tidak bersarang jika dimulai oleh transaksi lain.
Ada beberapa situasi untuk menggunakan transaksi otonom seperti event logging dan audit.
42) Bedakan antara SGA dan PGA.
SGA adalah singkatan dari System Global Area sedangkan PGA adalah singkatan dari Program atau Process Global Area. PGA hanya mengalokasikan ukuran RAM 10%, tetapi SGA diberi ukuran RAM 40%.
43) Apa lokasi Pre_defined_functions.
Mereka disimpan dalam paket standar yang disebut "Fungsi, Prosedur, dan Paket"
44) Jelaskan polimorfisme dalam PL SQL.
Polimorfisme adalah fitur OOP. Ini adalah kemampuan untuk membuat variabel, objek atau fungsi dengan berbagai bentuk. PL / SQL mendukung Polimorfisme dalam bentuk unit program yang kelebihan beban di dalam fungsi atau paket anggota ... Logika yang tidak ambigu harus dihindari saat kelebihan beban sedang dilakukan.
45) Apa kegunaan MERGE?
MERGE digunakan untuk menggabungkan beberapa pernyataan DML menjadi satu.
Sintaks: menggabungkan ke dalam tablename
menggunakan (query)
pada (kondisi bergabung)
bila tidak cocok maka
Perintah [masukkan / perbarui / hapus]
saat cocok kemudian
Perintah [masukkan / perbarui / hapus]
46) Dapatkah 2 query dijalankan secara bersamaan dalam Sistem Database Terdistribusi?
Ya, mereka bisa dieksekusi secara bersamaan. Satu kueri selalu independen dari kueri kedua dalam sistem database terdistribusi berdasarkan komitmen 2 fase.
47) Jelaskan Raise_application_error.
Ini adalah prosedur dari paket DBMS_STANDARD yang memungkinkan mengeluarkan pesan kesalahan yang ditentukan pengguna dari pemicu database atau sub-program yang disimpan.
48) Apa parameter out yang digunakan untuk meskipun pernyataan return juga dapat digunakan di pl / sql?
Parameter Out memungkinkan lebih dari satu nilai dalam program panggilan. Parameter keluar tidak disarankan dalam fungsi. Prosedur dapat digunakan sebagai pengganti fungsi jika diperlukan beberapa nilai. Jadi, prosedur ini digunakan untuk menjalankan parameter Out.
49) Bagaimana Anda mengubah tanggal menjadi format tanggal Julian?
Kita bisa menggunakan string format J:
SQL> pilih to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') sebagai julian dari dual;
JULIAN
50) Jelaskan SPOOL
Perintah spool dapat mencetak output dari pernyataan sql dalam sebuah file.
spool / tmp / sql_outtxt
pilih smp_name, smp_id dari smp mana dept = 'akun';
berputar;
51) Sebutkan paket PL / SQL terdiri dari apa?
Paket PL / SQL terdiri dari
- PL / SQL tabel dan catat pernyataan JENIS
- Prosedur dan Fungsi
- Kursor
- Variabel (tabel, skalar, catatan, dll.) Dan konstanta
- Nama pengecualian dan pragma untuk menghubungkan nomor kesalahan dengan pengecualian
- Kursor
52) Sebutkan apa manfaat dari paket PL / SQL?
Ini memberikan beberapa manfaat seperti
- Penyembunyian Informasi yang Dipaksa: Ini menawarkan kebebasan untuk memilih apakah akan menyimpan data pribadi atau publik
- Desain top-down: Anda dapat mendesain antarmuka ke kode yang tersembunyi dalam paket sebelum Anda benar-benar menerapkan modul itu sendiri
- Ketekunan objek : Objek yang dideklarasikan dalam spesifikasi paket berperilaku seperti data global untuk semua objek PL / SQL dalam aplikasi. Anda dapat mengubah paket dalam satu modul dan kemudian mereferensikan perubahan tersebut ke modul lain
- Desain berorientasi objek: Paket ini memberi pengembang pemahaman yang kuat tentang bagaimana modul dan struktur data di dalam paket dapat digunakan
- Menjamin integritas transaksi: Ini memberikan tingkat integritas transaksi
- Peningkatan kinerja: RDBMS secara otomatis melacak validitas semua objek program yang disimpan dalam database dan meningkatkan kinerja paket.
53) Sebutkan apa saja metode berbeda untuk melacak kode PL / SQL?
Kode pelacakan adalah teknik penting untuk mengukur kinerja kode selama runtime. Metode yang berbeda untuk penelusuran termasuk
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION dan DBMS_MONITOR
- trcsess dan utilitas tkproof
54) Sebutkan apa yang dilakukan hierarchical profiler?
Profiler hierarkis dapat membuat profil panggilan yang dibuat di PL / SQL, selain dari mengisi celah antara celah dan ekspektasi penelusuran kinerja. Efisiensi profiler hierarkis termasuk
- Pelaporan berbeda untuk konsumsi waktu SQL dan PL / SQL
- Laporan menghitung panggilan sub-program berbeda yang dibuat di PL / SQL, dan waktu yang dihabiskan dengan setiap panggilan subprogram
- Beberapa laporan analitik interaktif dalam format HTML dengan menggunakan utilitas baris perintah
- Lebih efektif daripada profiler konvensional dan utilitas penelusuran lainnya
55) Sebutkan apa yang dapat dilakukan oleh PLV msg?
Pesan PLV memungkinkan Anda untuk
- Tetapkan pesan teks individu ke baris tertentu dalam tabel PL / SQL
- Ini mengambil teks pesan dengan nomor
- Ini secara otomatis menggantikan pesan Anda sendiri untuk pesan kesalahan Oracle standar dengan toggle terbatas
- Batch memuat nomor pesan dan teks dari tabel database secara langsung PLV msg PL / tabel SQL
56) Sebutkan apa yang ditawarkan paket PLV (PL / Vision)?
- Nilai substitusi nol
- Kumpulan rutinitas pernyataan
- Utilitas lain-lain
- Kumpulan konstanta yang digunakan di seluruh visi PL
- Jenis data yang telah ditentukan sebelumnya
- 57) Sebutkan apa gunanya PLVprs dan PLVprsps?
- PLVprs: Ini adalah ekstensi untuk parsing string untuk PL / SQL, dan ini adalah tingkat fungsionalitas parsing string terendah
- PLVprsps: Ini adalah paket tingkat tertinggi untuk mengurai kode sumber PL / SQL menjadi atomics terpisah. Itu bergantung pada paket parsing lain untuk menyelesaikan pekerjaan.
58) Jelaskan bagaimana Anda dapat menyalin file ke konten file dan file ke tabel PL / SQL terlebih dahulu PL / SQL?
Dengan satu panggilan program - " prosedur fcopy", Anda dapat menyalin konten lengkap dari satu file ke file lain. Sedangkan untuk menyalin isi file langsung ke tabel PL / SQL, Anda dapat menggunakan program " file2pstab" .
59) Jelaskan bagaimana penanganan pengecualian dilakukan di muka PL / SQL?
Untuk penanganan pengecualian PL / SQl menyediakan plugin PLVexc yang efektif. PLVexc mendukung empat tindakan penanganan pengecualian yang berbeda.
- Lanjutkan pemrosesan
- Rekam lalu lanjutkan
- Hentikan pemrosesan
- Rekam dan kemudian hentikan pemrosesan
Untuk pengecualian yang terjadi kembali, Anda dapat menggunakan pernyataan RAISE.
60) Sebutkan masalah apa yang mungkin dihadapi seseorang saat menulis informasi log ke tabel basis data di PL / SQL?
Saat menulis informasi log ke tabel database, masalah yang Anda hadapi adalah informasi tersebut hanya tersedia setelah baris baru dimasukkan ke database. Ini mungkin menjadi masalah karena PLVlog biasanya digunakan untuk melacak kesalahan dan dalam banyak kasus, transaksi saat ini akan gagal atau membutuhkan rollback.
61) Sebutkan apa fungsi yang digunakan untuk mentransfer log tabel PL / SQL ke tabel database?
Untuk mentransfer log tabel PL / SQL, fungsi tabel log database "PROSEDUR ps2db" digunakan.
62) Kapan Anda harus menggunakan "rollback to" savepoint default dari PLVlog?
Titik simpanan "kembalikan ke" default PLVlog digunakan saat pengguna telah mengaktifkan aktivitas kembalikan dan belum memberikan titik simpanan alternatif dalam panggilan ke put_line. Savepoint default diinisialisasi ke konstanta c none.
63) Mengapa PLVtab dianggap sebagai cara termudah untuk mengakses tabel PL / SQL?
Tabel PL / SQL adalah yang paling dekat dengan array di PL / SQL, dan untuk mengakses tabel ini Anda harus mendeklarasikan tipe tabel terlebih dahulu, dan kemudian Anda harus mendeklarasikan tabel PL / SQL itu sendiri. Tetapi dengan menggunakan PLVtab, Anda dapat menghindari menentukan jenis tabel PL / SQL Anda sendiri dan membuat akses tabel data PL / SQL menjadi mudah.
64) Sebutkan apa yang PLVtab memungkinkan Anda lakukan ketika Anda menampilkan konten tabel PL / SQL?
PLVtab memungkinkan Anda melakukan hal-hal berikut saat Anda menampilkan konten tabel PL / SQL
- Menampilkan atau menyembunyikan header untuk tabel
- Menampilkan atau menyembunyikan nomor baris untuk nilai tabel
- Tunjukkan awalan sebelum setiap baris tabel
65) Jelaskan bagaimana Anda bisa menyimpan atau menempatkan pesan Anda di tabel?
Untuk menyimpan pesan dalam tabel, Anda dapat melakukannya dengan dua cara
- Muat pesan individual dengan panggilan ke prosedur add_text
- Memuat kumpulan pesan dari tabel database dengan prosedur load_from_dbms
66) Sebutkan apa gunanya fungsi "modul prosedur" di PL / SQL?
The "modul prosedur" memungkinkan untuk mengubah semua baris kode dalam unit program tertentu dengan satu panggilan prosedur. Ada tiga argumen untuk modul
- module_in
- cor_in
- Last_module_in
67) Sebutkan apa yang dilakukan PLVcmt dan PLVrb di PL / SQL?
PL / Vision menawarkan dua paket yang membantu Anda mengelola pemrosesan transaksi dalam aplikasi PL / SQL. Ini adalah PLVcmt dan PLVrb.
- PLVcmt: Paket PLVcmt membungkus logika dan kompleksitas untuk menangani pemrosesan komit
- PLVrb: Ini menyediakan antarmuka terprogram untuk memutar kembali aktivitas di PL / SQL