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

Използване на Dapper със съхранени процедури на Oracle, които връщат курсори

Благодаря за решението тук. Постигнах същото с малко по-малко код, използвайки прост декоратор на DynamicParameter:

public class OracleDynamicParameters : SqlMapper.IDynamicParameters
{
    private readonly DynamicParameters dynamicParameters = new DynamicParameters();

    private readonly List<OracleParameter> oracleParameters = new List<OracleParameter>();

    public void Add(string name, object value = null, DbType? dbType = null, ParameterDirection? direction = null, int? size = null)
    {
        dynamicParameters.Add(name, value, dbType, direction, size);
    }

    public void Add(string name, OracleDbType oracleDbType, ParameterDirection direction)
    {
        var oracleParameter = new OracleParameter(name, oracleDbType, direction);
        oracleParameters.Add(oracleParameter);
    }

    public void AddParameters(IDbCommand command, SqlMapper.Identity identity)
    {
        ((SqlMapper.IDynamicParameters)dynamicParameters).AddParameters(command, identity);

        var oracleCommand = command as OracleCommand;

        if (oracleCommand != null)
        {
            oracleCommand.Parameters.AddRange(oracleParameters.ToArray());
        }
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. System.Data.OracleClient изисква клиентски софтуер на Oracle версия 8.1.7

  2. Oracle:'=ANY()' срещу 'IN ()'

  3. Параметър за изчакване на IDLE в Oracle

  4. ORA-01264:Не може да се създаде име на регистрационен файл

  5. Списък на езиците, поддържани от Oracle Database