Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Tipo Dapper &Oracle Clob


Encontrei este vijaysg / OracleDynamicParameters.cs

Ele cria OracleDynamicParameters classe implementa IDynamicParameters interface.

Aqui é como usar

Amostra:
PROCEDURE GetUserDetailsForPIDM (i_id    IN   NUMBER,
                o_user           OUT SYS_REFCURSOR,
                o_roles          OUT SYS_REFCURSOR);

e como chamá-lo com dapper
public static User GetUserDetailsByID( int ID ) {
    User u = null;
    using ( OracleConnection cnn = new OracleConnection( ConnectionString ) ) {
        cnn.Open( );
        var p = new OracleDynamicParameters( );
        p.Add( "i_id", ID );
        p.Add( "o_user", dbType:OracleDbType.RefCursor, direction: ParameterDirection.Output );
        p.Add( "o_roles", dbType: OracleDbType.RefCursor, direction: ParameterDirection.Output );

        using ( var multi = cnn.QueryMultiple( "PKG_USERS.GetUserDetailsForID", param: p, commandType: CommandType.StoredProcedure ) ) {
            u = multi.Read<User>( ).Single( );
            u.Roles = multi.Read<UserRole>.ToList( );
        }
    }
    return u;
}

Para o tipo Clob, basta especificar OracleDbType.Clob ao adicionar parâmetro.