Search code examples
asp.net-coreplsql.net-coreuser-defined-typesodp.net-managed

Oracle.ManagedDataAccess.Core (Odp.Net Core) User Defined Type and Associative Array Type


I want pass a user defined type or associative array with type to a store procedure in dotnet core with Oracle.ManagedDataAccess.Core (Odp.Net Core). But I can't find any clear example.

Has Odp.net Core support User Defined Type or Associative Array Type, I don't know.

This is my type;

TYPE TYP_BC_RECORD is record (
      unique_id             depo.bc_stok_har.unique_id%type,
      transaction_hash      depo.bc_stok_har.transaction_hash%type,
      transaction_error     depo.bc_stok_har.transaction_error%type
 );
 TYPE TABLE_TYPE_BCRECORD IS TABLE OF TYP_BC_RECORD;

the store procedure paramater;

PROCEDURE P_SetResultBcHksRecordList(arBC_RECORD TABLE_TYPE_BCRECORD);

and dotnet core code;

OracleCommand OCommAPI = new 
OracleCommand("Depo.SPHKSBLOCKCHAIN.P_SetResultBcHksRecordList", conn);
OCommAPI.CommandType = CommandType.StoredProcedure;


OracleParameter arBC_RECORD = new OracleParameter
{
  OracleDbType = ?,
  ParameterName = "arBC_RECORD ",
  //I don't know what I suppossed to write here. ?
  //RetUniqueID.Value = item;
  Direction = ParameterDirection.Input
};
CommAPI.Parameters.Add(arBC_RECORD);
.
.
.

Solution

  • Short answer - no. ODP.NET did not support custom type. See what was supported .

    enter image description here

    Oracle docs