title: Stored procedure OUTPUT VARCHAR2 value truncated using 12c client
body: <p>I am using <strong>oracle 11g</strong>. My stored procedure is returning <code>varchar2</code> but its value is being truncated by <code>oracle client</code>. 
  Below is my code :</p>
  
  <pre><code>            if ((ds != null) &amp;&amp; (ds.Tables.Count &gt; 0))
                  {
  
                      foreach (DataRow rw in ds.Tables[0].Rows)
                      {
  
                          OracleParameter param = new OracleParameter((rw["argument_name"]).ToString(), GetOracleType(rw["data_type"].ToString().ToUpper()));
                          param.Direction = GetParameterDirection((rw["in_out"]).ToString().ToUpper());
                          discoveryCommand.Parameters.Add(param);
                          if (param.Direction == ParameterDirection.Output &amp;&amp; param.OracleType == OracleType.VarChar)
                          {
                              param.Size = 4000;
                          }
                      }
                  }
  </code></pre>
  
  <p>I increased the <code>param.size</code> to <code>4000</code> but still values are being truncated. 
  Is there any solution to this. On server I have <strong>Oracle 12c</strong>. I need to get solution without updating oracle client version in my project as that is not allowed due to some reasons. </p>
  
  <p>Below is the SP . I modified it to return hard-coded values. Still same issue.</p>
  
  <pre><code>PROCEDURE access_level (
            p_emp_id IN  employees.emp_id%TYPE,
          p_id IN  NUMBER,
          p_type VARCHAR2,
            p_access_level OUT VARCHAR2
   ) IS
    BEGIN
  
  
   p_access_level := 'X' || 'RO' || 'RW';
  
  
  
  
  
  
   END IF;
  </code></pre>