Oracle
 sql >> Base de données >  >> RDS >> Oracle

Type Dapper et Oracle Clob

J'ai trouvé ceci vijaysg / OracleDynamicParameters.cs

Il crée OracleDynamicParameters la classe implémente IDynamicParameters interface.

ici comment l'utiliser

Exemple :

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

et comment l'appeler avec pimpant

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;
}

Pour le type Clob, spécifiez simplement OracleDbType.Clob lors de l'ajout d'un paramètre.