title: Code for calling a function in a package from C# and ODP.NET
body: <p>I've tried to write C# code with ODP.NET to call a function in a package. I'm getting the two errors below:</p>
  
  <pre><code>ORA-06550: line 1, column 7:
  PLS-00306: wrong number or types of arguments in call to INSERT_FUNC'
  ORA-06550: line 1, column 7:
  PL/SQL: Statement ignored
  
  ORA-06550: line 1, column 7:
  PLS-00221: 'INSERT_FUNC' is not a procedure or is undefined
  ORA-06550: line 1, column 7:
  PL/SQL: Statement ignored
  </code></pre>
  
  <p>My <code>OracleCommand</code> is set up as:</p>
  
  <pre><code>cmd.CommandText = "PKG_NAME.INSERT_FUNC";
  cmd.CommandType = CommandType.StoredProcedure;
  </code></pre>
  
  <ol>
  <li>How should I pass parameters to the function below?</li>
  <li>Do I need to add a <code>ReturnValue</code> parameter? I've seen many forums discussing the need to add a <code>ReturnValue</code> parameter as the first <code>OracleParameter</code> on the <code>OracleCommand</code> object.</li>
  </ol>
  
  <p>I would appreciate any suggestions.</p>
  
  <pre><code>CREATE OR REPLACE
  PACKAGE BODY pkg_name IS
    FUNCTION insert_func (
        i_description IN  tableName.description%TYPE,
        i_theme       IN  tableName.theme%TYPE,
        o_id          OUT tableName.id%TYPE,
        o_error_msg   OUT VARCHAR2 )
      RETURN NUMBER
    IS
      l_program VARCHAR2(100) := 'PKG_NAME.INSERT_FUNC';
    BEGIN
      INSERT INTO tablea ( event_id, id, description, theme, lock_version )
        VALUES ( rms12.tablea_seq.NEXTVAL, rms12.tablea_id_seq.NEXTVAL, i_description, i_theme, NULL );
      INSERT INTO tableb ( id, description, theme )
        VALUES ( rms12.id_seq.CURRVAL, i_description, i_theme );
      SELECT rms12.id_seq.CURRVAL
        INTO o_id
        FROM dual;
      RETURN 1;
    EXCEPTION
      WHEN OTHERS THEN
        o_error_msg := sql_lib.create_msg(
            'PACKAGE_ERROR', SQLERRM, l_program, TO_CHAR( SQLCODE ) );
        RETURN 0;
    END insert_func;
  END pkg_name;
  </code></pre>