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

Код за извикване на функция в пакет от C# и ODP.NET

Това е първият ми въпрос в този форум и с удоволствие ще публикувам собствения си отговор.

Можем да извикаме функция на пакет оракул, използвайки ODP.NET, като зададем CommandType.StoredProcedure .

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

Ако получите тази грешка, просто добавете този ред като първи параметър на командния обект:

cmd.Parameters.Add("Return_Value", OracleDbType.Int16,
    ParameterDirection.ReturnValue);

Ето работния код:

using (var conn = new OracleConnection(oradb))
using (var cmd = conn.CreateCommand())
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "PKG_NAME.INSERT_FUNC";

    cmd.BindByName = true;

    cmd.Parameters.Add("Return_Value", OracleDbType.Int16,
        ParameterDirection.ReturnValue);
    cmd.Parameters.Add("i_description", OracleDbType.Varchar2, 1000,
        promotionEventSetupDetails.PromotionDescription,
        ParameterDirection.Input);
    cmd.Parameters.Add("i_theme", OracleDbType.Varchar2, 80,
        promotionEventSetupDetails.PromotionTheme,
        ParameterDirection.Input);
    cmd.Parameters.Add("o_id", OracleDbType.Varchar2,
        ParameterDirection.Output);
    cmd.Parameters.Add("o_error_msg", OracleDbType.Varchar2,
        ParameterDirection.Output);

    conn.Open();
    using (var dr = cmd.ExecuteReader())
    {
        // do some work here
    }
}


  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 DB

  2. 2 функции, които получават деня, месеца и годината от дата в Oracle

  3. Как да актуализирате таблицата в oracle

  4. Не може да се извлече идентификатора на последния вмъкнат ред в Hibernate с помощта на Oracle

  5. Каква е разликата между прецизност и мащаб?