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

ORACLE:Menggunakan CTE (Common Table Expressions) dengan PL/SQL

Pertama, ini tidak ada hubungannya dengan CTE. Perilaku ini akan sama dengan select * from table pertanyaan. Perbedaannya adalah bahwa dengan T-SQL, kueri masuk ke kursor implisit yang dikembalikan ke pemanggil. Saat menjalankan SP dari Management Studio, ini nyaman. Kumpulan hasil muncul di jendela data seolah-olah kita telah mengeksekusi kueri secara langsung. Tapi ini sebenarnya perilaku non-standar. Oracle memiliki perilaku yang lebih standar yang dapat dinyatakan sebagai "set hasil dari setiap kueri yang tidak diarahkan ke kursor harus diarahkan ke variabel." Saat diarahkan ke variabel, maka kueri harus mengembalikan hanya satu baris.

Untuk menduplikasi perilaku T-SQL, Anda hanya perlu mendeklarasikan dan mengembalikan kursor secara eksplisit. Kemudian kode panggilan mengambil dari kursor seluruh hasil yang ditetapkan tetapi satu baris pada satu waktu. Anda tidak mendapatkan kemudahan Pengembang Sql atau Pengembang PL/SQL mengalihkan hasil yang disetel ke jendela tampilan data, tetapi Anda tidak dapat memiliki semuanya.

Namun, karena kami biasanya tidak menulis SP hanya untuk dipanggil dari IDE, lebih mudah untuk bekerja dengan kursor eksplisit Oracle daripada yang implisit SQL Server. Cukup google "oracle return ref cursor to caller" untuk mendapatkan banyak materi bagus.



  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 menggunakan sql * plus dalam skrip perintah Windows untuk mengontrol aliran?

  2. Oracle:Apa artinya 'eksekusi segera'?

  3. Oracle SQL Syntax:Pengidentifikasi yang dikutip

  4. Kompatibilitas Oracle 19c dengan jdk7

  5. Masalah menjalankan skrip Oracle dari baris perintah menggunakan sqlplus