Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Dapper &Oracle Clob-Typ

Ich habe diese vijaysg / OracleDynamicParameters.cs gefunden

Es erstellt OracleDynamicParameters Klasse implementiert IDynamicParameters Schnittstelle.

Hier ist, wie man es verwendet

Beispiel:

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

und wie man es mit dapper aufruft

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

Geben Sie für den Typ Clob einfach OracleDbType.Clob an beim Hinzufügen von Parametern.