sql >> Databasteknik >  >> RDS >> Oracle

Använder Dapper med Oracle lagrade procedurer som returnerar markörer

Tack för lösningen här. Jag uppnådde samma sak med lite mindre kod med en enkel DynamicParameter-dekorator:

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. Hur man tar bort efterföljande nollor från en decimal i PostgreSQL

  2. Analys med MariaDB AX - tThe Open Source Columnar Datastore

  3. V$SQL_SHARED_CURSOR TOP_LEVEL_RPI_CURSOR

  4. Lagra frågeresultat i en variabel som använder i PL/pgSQL