Oracle
 sql >> база данни >  >> RDS >> Oracle

Съпоставяне на Oracle UDT, съдържащ асоциативен масив в C#

Това не е тип данни от асоциативен масив (известен също като "индекс по таблица"); това е тип данни за колекция и е дефиниран в обхвата на SQL.

Асоциативните масиви са налични само в обхвата на PL/SQL и могат да бъдат дефинирани като:

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

C# поддържа предаване на асоциативни масиви към съхранени процедури, използвайки нещо като това:

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# НЕ поддържа предаване на неасоциативни масиви.

Ако искате да имате колекция (неасоциативен масив), дефинирана като член на потребителски дефиниран тип (UDT), тогава ще трябва да използвате междинна стъпка на предаване на асоциативен масив и след това да използвате PL/SQL, за да го конвертирате към колекция, преди да я присвоите на UDT. Можете да опаковате всичко това в съхранена процедура в 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. Монитор за промяна на таблицата Oracle

  2. % влиза в PreparedStatement на Java

  3. Различни CURRENT_TIMESTAMP и SYSDATE в oracle

  4. Скрипт за намиране на многостепенни зависимости на пакет

  5. Проблеми, когато потребителят въвежда данни в sql команда