Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Mapowanie Oracle UDT zawierającego tablicę asocjacyjną w C#

To nie jest typ danych tablicy asocjacyjnej (znany również jako „indeks według tabeli”); jest to typ danych kolekcji i jest zdefiniowany w zakresie SQL.

Tablice asocjacyjne są dostępne tylko w zakresie PL/SQL i można je zdefiniować w następujący sposób:

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

C# obsługuje przekazywanie tablic asocjacyjnych do procedur składowanych przy użyciu czegoś takiego:

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# NIE obsługuje przekazywanie tablic nieasocjacyjnych.

Jeśli chcesz mieć kolekcję (tablicę nieskojarzeniową) zdefiniowaną jako element typu zdefiniowanego przez użytkownika (UDT), będziesz musiał użyć pośredniego kroku polegającego na przekazaniu tablicy asocjacyjnej, a następnie użyciu PL/SQL do jej konwersji do kolekcji przed przypisaniem jej do UDT. Możesz to wszystko umieścić w procedurze składowanej w pakiecie 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. Indeksy oparte na funkcjach Oracle

  2. Nie można połączyć się z bazą danych Oracle, pojawia się błąd jako java.sql.SQLException:Wyjątek Io:Karta sieciowa nie może nawiązać połączenia

  3. Pobierz anonimowy wynik bloku PLSQL

  4. Uzyskiwanie poprawnego czasu od daty Oracle w Solr DataImportHandler

  5. Jak zadeklarować parametry wejścia-wyjścia w procedurze/funkcji przechowywanej w programie SQL Server?