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

Oracle sql mengetik melalui dblink

Saya memiliki masalah serupa di masa lalu. Kemudian saya sampai pada kesimpulan bahwa pada dasarnya tautan db Oracle "rusak" untuk apa pun kecuali tipe SQL sederhana (terutama UDT, CLOBS mungkin memiliki masalah, XMLType mungkin juga). Jika Anda bisa mendapatkan solusi OID yang bekerja maka semoga sukses untuk Anda.

Solusi yang saya gunakan adalah menggunakan prosedur Java Stored, alih-alih Tautan DB.

Karakteristik Prosedur Tersimpan Java:

  1. Dapat mengembalikan "kumpulan tipe yang kaya", hampir semua tipe kompleks (UDT, tabel/array/varrays) lihat Dokumentasi online Oracle untuk rincian. Oracle melakukan pekerjaan yang jauh lebih baik dalam menyusun tipe kompleks (atau kaya) dari java, daripada dari DBLink.
  2. Java yang disimpan dapat memperoleh "koneksi default" (berjalan dalam sesi yang sama dengan koneksi SQL ke db - tidak ada masalah autentikasi).
  3. Java yang tersimpan memanggil proc PL/SQL pada DB jarak jauh, dan lapisan Java JDBC melakukan marshaling dari DB jarak jauh.
  4. Java yang tersimpan mengemas hasil dan mengembalikan hasilnya ke lapisan SQL atau PL/SQL.

Ini sedikit pekerjaan, tetapi jika Anda memiliki sedikit java, Anda harus dapat "memotong dan menempelkan" solusi bersama-sama dari dokumentasi dan sampel Oracle.

Saya harap ini membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. prosedur tersimpan pl/sql:nama parameter sama dengan nama kolom

  2. Mengambil data besar dari Oracle dengan Python

  3. SQL - Cara memilih baris yang memiliki kolom dengan nilai maksimal di Oracle

  4. customer.pk_name bergabung dengan transaction.fk_name vs. customer.pk_id [serial] bergabung dengan transaction.fk_id [integer]

  5. Bagaimana cara menggunakan indeks berbasis fungsi pada kolom yang berisi NULL di Oracle 10+?