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

Nilai Pengikatan Array Oracle.DataAccess (ODP.NET) tidak termasuk dalam kisaran yang diharapkan

Saya pikir Anda mencoba menggabungkan Array Bind {cukup mengikat larik ke param untuk menjalankannya beberapa kali -- beginilah contoh di tautan yang Anda berikan melakukannya} dengan Array Asosiatif {re:PLSQLAssociativeArray dengan param INPUT dari TABLE OF}.

Karena Anda tidak memposting paket/proc yang Anda jalankan, saya berasumsi Anda melakukan sesuatu seperti ini (cukup letakkan ini untuk memvalidasi asumsi)

procedure insertdata(P_JOB_TITLE IN VARCHAR2) as
begin
insert into myTable(x) value (P_JOB_TITLE);
end  insertdata;

Untuk menjalankan ini seperti penulis artikel, Anda perlu menggunakan ArrayBindCount ( lihat tautan ini, ini juga memiliki contoh) .Ini juga menunjukkan, jika Anda memiliki beberapa parameter, itu akan mengharapkan ARRAY untuk masing-masing parameter.

Sekarang untuk menjalankan ini untuk semua P_JOB_TITLE() yang Anda berikan

//this was missing in your example and MUST be there to tell ODP how many array elements to expect
cmd.ArrayBindCount = 2;

 string[] jobTitleArray = {"name1", "name1"};

OracleParameter paramNames= new OracleParameter("P_JOB_TITLE", OracleDbType.Varchar2);

   //paramNames.CollectionType = OracleCollectionType.PLSQLAssociativeArray;/*once again, you are passing in an array of values to be executed and not a pl-sql table*/

    //paramNames.Size = 2; /* this is unnecessary since it is for a plsql-associative array*/
    paramNames.Value =  jobTitleArray ;
    cmd.Parameters.Add(paramNames);

Untuk contoh plSQLAssociativeArray lihat contoh yang diberikan saat Anda menginstal ODP @ %ORA_HOME%\odp.net\samples\2.x\AssocArray

dan untuk contoh ikatan array (seperti dari tautan yang Anda berikan)@ %ORA_HOME%\odp.net\samples\2.x\ArrayBind




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL aneh membuang-buang sumber daya saya

  2. Kembalikan transaksi yang dilakukan

  3. Memanipulasi koleksi

  4. Menginstal Skema Sampel untuk Oracle 12c menggunakan Asisten Konfigurasi Database

  5. Fungsi PENGGUNA di Oracle