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

Memanggil prosedur Oracle dengan parameter tipe koleksi PL/SQL melalui .NET

Panggilan prosedur melalui ODP.NET hanya mendukung array Asosiatif, yaitu dengan INDEX BY ... , Tabel Bersarang tidak didukung.

Salah satu solusinya adalah mengonversi dalam prosedur Oral Anda:

CREATE OR REPLACE PACKAGE test_package_gkeu IS

    TYPE test_type IS TABLE OF NUMBER;    
    TYPE test_type_associative IS TABLE OF NUMBER INDEX BY INTEGER;

PROCEDURE TEST1 (pvTest IN test_type_associative ) IS

v test_type := test_type();
BEGIN
   v.Extend(pvTest.COUNT);
   for i in pvTest.First..pvTest.Last loop
       v(i) := pvTest(i)
   end loop;

select *
into ...
from receiver r
where r.receiverid MEMBER OF (v);

END;

Untuk pernyataan DML pertimbangkan juga ini:

FORALL i IN INDICES OF pvTest 
    INSERT INTO MY_TABLE (COL_A)
    VALUES (pvTest(i));

or 

FORALL i IN INDICES OF pvTest 
    DELETE FROM receiver 
    WHERE receiverid  = pvTest(i);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menampilkan komentar kolom dengan operasi desc

  2. Bagaimana cara memformat kueri Oracle saya sehingga kolom tidak terbungkus?

  3. Oracle:'=ANY()' vs. 'IN ()'

  4. ASCIISTR() Fungsi di Oracle

  5. Petualangan Pembelian Ringan