sql >> Database >  >> RDS >> Oracle

Dapper gebruiken met Oracle-opgeslagen procedures die cursors retourneren

Bedankt voor de oplossing hier. Ik bereikte hetzelfde met een beetje minder code met behulp van een eenvoudige DynamicParameter-decorateur:

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. Fout bij gebruik van een OLAP-verbinding:de MSOLAP-provider is niet geregistreerd op de lokale computer...

  2. Mijn 11g Optimizer-statistieken Job stop bij mij - opgelost

  3. Hoe te repareren van de "datediff-functie resulteerde in een overloop" Fout in SQL Server

  4. PostgreSQL-functieaanroep