title: How is it better to send data using Dapper in c# to PL/SQL scripts variables of RECORD type
body: <p>I have a PL/SQL procedure that using 3 variables of <code>RECORD</code> type as parameters, which i have to fill with my data (from c# application) to execute a procedure.</p>
  
  <p>1st i've tried to build the same structure with this records via c# and pass as a parameter via Dapper, but it's not working since dapper works only with scalar data types.</p>
  
  <p>Then i've tried to pass my data as arrays and to map them inside the procedure, but RECORD type can't accept sets of data like <code>a.NAME := ('aaaaaa','sdasd');</code> it works only this way:</p>
  
  <pre><code>a.NAME(1) := 'aaaaaa';
  a.NAME(2) := 'sdasd';
  </code></pre>
  
  <p>The only thing that i have on my mind now is to generate such strings in the procedure text, but i'm feeling like there should be a better way. What am doing wrong?</p>
  
  <p>P.S. i can't change the script that needs to be running after all, so i can't change the data type it accepts.</p>
  
  <p>Update:
  To make it easier, let's say, i've decided to make an example:</p>
  
  <p>We have 2 custom types</p>
  
  <pre><code>TYPE A_REC IS RECORD (NAME dbms_sql.Varchar2_Table);
  TYPE B_REC IS RECORD (NAME dbms_sql.Varchar2_Table
                           , ID dbms_sql.Number_Table);
  </code></pre>
  
  <p>and a procedure, which might be used something like</p>
  
  <pre><code>declare
  a c_pck.a_rec;
  b c_pck.b_rec;
  begin
  
  a.NAME(1) := 'aaaaa';
  b.NAME(1) := 'sssss';
  b.NAME(2) := 'ddddd';
  b.ID(1) := 111;
  b.ID(2) := 222;
  
  
  c_pck.pr(a =&gt; a, b =&gt; b);
  end;
  </code></pre>
  
  <p>How can i run this procedure via Dapper?</p>