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

Memetakan Oracle UDT yang berisi array asosiatif di C#

Itu bukan tipe data array asosiatif (juga dikenal sebagai "indeks menurut tabel"); ini adalah tipe data kumpulan dan didefinisikan dalam lingkup SQL.

Array asosiatif hanya tersedia dalam lingkup PL/SQL dan dapat didefinisikan seperti:

CREATE PACKAGE package_name AS
  TYPE STRING_MAP IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
END;
/

C# mendukung melewatkan array asosiatif ke prosedur tersimpan menggunakan sesuatu seperti ini:

OracleParameter parameter = new OracleParameter();
parameter.ParameterName  = "YourParameterName";
parameter.OracleDbType   = OracleDbType.Varchar2;
parameter.Direction      = ParameterDirection.Input;
parameter.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
parameter.Value          = new String[5]{"a","b","c","d","e"};

C# TIDAK mendukung melewatkan array non-asosiatif.

Jika Anda ingin memiliki koleksi (array non-asosiatif) yang didefinisikan sebagai anggota dari tipe yang ditentukan pengguna (UDT), maka Anda harus menggunakan langkah perantara untuk melewatkan array asosiatif dan kemudian menggunakan PL/SQL untuk mengonversinya ke koleksi sebelum menetapkannya ke UDT. Anda dapat membungkus semua ini dalam prosedur tersimpan dalam paket PL/SQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GABUNGAN Eksplisit vs Gabungan implisit?

  2. Masalah konversi Oracle SQL DATE menggunakan iBATIS melalui Java JDBC

  3. Cara menanyakan kolom CLOB di Oracle

  4. mengambil data menggunakan rownum di Oracle

  5. Cara menginstal cx_Oracle di El Capitan