Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pengantar Native Dynamic SQL Di Oracle Database

SQL Dinamis Asli

Sebelum mempelajari Native dynamic SQL, latar belakang singkat itu penting. Oracle memberikan hadiah pertengahan musim panas pada Mei 1994 kepada semua pengembang dengan memperkenalkan konsep SQL Dinamis dalam Database versi 7.1 (alias Oracle 7.1). Dengan ini memungkinkan pengembang untuk menulis SQL dinamis melalui paket “DBMS_SQL”.

Namun lambat laun perpustakaan DBMS_SQL mulai kehilangan pesonanya. Karena sintaks "Tidak Begitu Mudah", "Kinerja Lambat" dan "Tipe Buatan Pengguna Tidak Didukung". Semua kekurangan ini menimbulkan kebutuhan akan sesuatu yang lain. Yang dapat membantu pengembang dalam menulis kode yang dioptimalkan dengan baik tanpa terlalu membebani pikiran mereka.

Oracle mengambil waktu, hampir lima tahun. Akhirnya, ia merilis versi Dynamic SQL yang ditingkatkan dengan peluncuran Oracle Database 8i atau tepatnya Oracle Database versi 8.1.5 pada Februari 1999. Karena sifatnya yang stabil, versi Dynamic SQL yang disempurnakan ini menjadi bagian asli dari PL/ bahasa SQL dan mendapatkan namanya "Native Dynamic SQL" yang dikenal sekarang beberapa hari. Itulah pengenalan singkat tentang asal usul SQL dinamis asli di Oracle Database.

Untuk memahami SQL dinamis asli, pertama-tama kita perlu memahami apa itu SQL statis di Oracle Database?

Apa itu SQL Statis?

Seperti namanya, setiap pernyataan SQL yang tidak berubah selama runtime disebut pernyataan SQL statis.

Keuntungan dari pernyataan SQL Statis adalah bahwa kita sudah tahu apakah semua objek yang bergantung di mana kita menulis pernyataan ada atau tidak. Keuntungan lain dari pernyataan SQL Statis adalah kita meng-hardcode-nya ke dalam aplikasi kita. Dengan demikian kami dapat menyetelnya untuk kinerja yang optimal.

Sekarang setelah kita mempelajari apa itu SQL Statis, mari kita lihat apa itu SQL dinamis?

Apa itu SQL Dinamis Asli?

Sekali lagi seperti namanya, setiap pernyataan SQL yang dibangun pada saat runtime disebut SQL dinamis . Pernyataan ini dibuat dengan cepat. Oleh karena itu mereka tidak dapat di-hardcode ke dalam aplikasi. Hal ini pada gilirannya meningkatkan fleksibilitas mereka.

Di satu sisi SQL statis memungkinkan Anda mengeksekusi hanya pernyataan DML di dalam blok PL/SQL Anda. Di sisi lain SQL dinamis memungkinkan Anda untuk mengeksekusi pernyataan DDL dan itu juga di dalam blok PL/SQL Anda. Jadi dengan menggunakan SQL Dinamis Anda dapat membuat tabel atau menjatuhkan indeks atau memotong tabel Anda tepat di dalam blok PL/SQL Anda. Ini adalah keunggulan SQL Dinamis Asli dibandingkan SQL statis.

Apa itu Native Dynamic PL/SQL?

Mirip dengan SQL dinamis, proses pembuatan kode PL/SQL saat runtime disebut PL/SQL dinamis.

Sekarang mari kita lihat manfaat dari Native Dynamic SQL dibandingkan paket DBMS_SQL di Oracle Database.

Manfaat SQL Dinamis Asli

  • Kode yang Mudah Digunakan: Dibandingkan dengan paket DBMS_SQL, SQL dinamis asli jauh lebih mudah digunakan. Hal ini terutama karena tergabung dalam SQL itu sendiri. Ini setara dengan menggunakan SQL Statis dalam kode PL/SQL. Juga kode SQL dinamis asli lebih ringkas dan mudah dibaca daripada paket DBMS_SQL. Yang terakhir membutuhkan sejumlah besar kode karena prosedur berurutan yang ketat. Itu membuatnya lebih kompleks.
  • Peningkatan Kinerja Kode: Ada dukungan bawaan untuk SQL dinamis asli di penerjemah PL/SQL. Dengan demikian program yang menggunakannya lebih efisien daripada yang menggunakan paket DBMS_SQL. Pada dasarnya SQL dinamis asli menggabungkan langkah-langkah yang melibatkan persiapan, pengikatan &eksekusi menjadi satu operasi. Hal ini mengurangi panggilan prosedur &overhead penyalinan data yang pada gilirannya meningkatkan kinerja.
  • Dukungan untuk Jenis Buatan Pengguna: Tidak seperti paket DBMS_SQL, SQL dinamis asli mendukung semua jenis tipe yang ditentukan pengguna. Misalnya objek, REF &koleksi yang ditentukan pengguna.
  • Dukungan Untuk Mengambil Catatan: Baris yang merupakan hasil kueri dapat langsung diambil ke dalam catatan PL/SQL menggunakan SQL dinamis asli. Ini tidak mungkin dilakukan dengan paket DBMS_SQL.

Apa saja fungsionalitas SQL Dinamis di Oracle Database?

  1. Pertama, DDL &DML Dinamis dengan menggunakan variabel ikatan apa pun.
  2. Kedua, DQL Dinamis dan
  3. Ketiga, DML Dinamis menggunakan daftar variabel pengikat yang diketahui

Ini adalah tiga fungsi yang ditambahkan SQL Dinamis ke pemrograman PL/SQL Anda.

Jadi, bagaimana kita menggunakan SQL dinamis di Oracle Database?

Dua metode yang paling umum menggunakan SQL dinamis dan PL/SQL di Oracle Database adalah:

  1. Jalankan pernyataan Segera dan
  2. Buka-Untuk, Ambil &Tutup blok.

Pernyataan Execute Immediate digunakan saat kueri mengembalikan data baris tunggal. Jika kueri mengembalikan data multi baris maka Anda dapat mengambil bantuan Open-For, Fetch, dan close block. Kita akan mempelajari tentang Execute Immediate dan Open-for, fetch, dan close block secara mendetail di tutorial mendatang.

Apakah ada cara lain untuk menggunakan SQL Dinamis di Oracle Database?

Selain metode yang paling sering digunakan di atas, cara lain menggunakan SQL dinamis atau PL/SQL adalah

  • Dengan Pengambilan Massal
  • Kedua dengan Eksekusi Massal Segera
  • Bersama dengan FORALL Massal dan
  • Terakhir dengan pernyataan Bulk Collect Into

Kami telah mempelajari semua perintah dan pernyataan di atas dalam seri sebelumnya tentang pemrosesan data massal.

Jika Anda suka belajar melalui video tutorial, silakan lihat.

Itu adalah pengantar terperinci untuk Native Dynamic SQL di Oracle Database. Semoga Anda menikmati membaca. Pastikan untuk Membagikan Tautan blog ini dengan teman-teman Anda di media sosial Anda. Pastikan juga untuk berlangganan saluran YouTube untuk mengikuti serial ini dan mempelajari sesuatu yang baru dan menarik.

Terima kasih dan semoga harimu menyenangkan!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan offset dalam kueri pemilihan di Oracle 11g?

  2. kesalahan sintaks dengan permintaan pembaruan saat bergabung dengan beberapa tabel

  3. Apakah saya perlu membuat indeks pada kunci asing di Oracle?

  4. Cara mendekati Got minus satu dari kesalahan panggilan baca saat menghubungkan ke instans Oracle RDS Amazon

  5. Oracle GROUP_CONCAT() Setara