diff --git a/src/Dapper.Oracle/OracleDynamicParameters.cs b/src/Dapper.Oracle/OracleDynamicParameters.cs
index cfb6bc5..10c7029 100644
--- a/src/Dapper.Oracle/OracleDynamicParameters.cs
+++ b/src/Dapper.Oracle/OracleDynamicParameters.cs
@@ -1,4 +1,4 @@
-//// Based on Gist found here: https://gist.github.com/vijaysg/3096151
+//// Based on Gist found here: https://gist.github.com/vijaysg/3096151
using System;
using System.Collections;
@@ -109,6 +109,7 @@ public void AddDynamicParams(dynamic param)
///
///
///
+ /// a flag that this param contains sensitive data and it must be masked in case of logging values
public void Add(
string name,
object value = null,
@@ -121,7 +122,8 @@ public void Add(
string sourceColumn = null,
DataRowVersion? sourceVersion = null,
OracleMappingCollectionType? collectionType = null,
- int[] arrayBindSize = null)
+ int[] arrayBindSize = null,
+ bool maskValueWhenLogging = false)
{
Parameters[Clean(name)] = new OracleParameterInfo()
{
@@ -136,7 +138,8 @@ public void Add(
SourceColumn = sourceColumn,
SourceVersion = sourceVersion ?? DataRowVersion.Current,
CollectionType = collectionType ?? OracleMappingCollectionType.None,
- ArrayBindSize = arrayBindSize
+ ArrayBindSize = arrayBindSize,
+ MaskValueWhenLogging = maskValueWhenLogging
};
}
@@ -167,7 +170,7 @@ public T Get(string name)
}
return default(T);
}
-
+
return OracleValueConverter.Convert(val);
}
@@ -239,10 +242,10 @@ protected virtual void AddParameters(IDbCommand command, SqlMapper.Identity iden
}
OracleMethodHelper.SetOracleParameters(p, param);
-
+
p.Direction = param.ParameterDirection;
-
- var val = param.Value;
+
+ var val = param.Value;
if (val != null && OracleTypeMapper.HasTypeHandler(val.GetType(), out var handler))
{
@@ -251,7 +254,7 @@ protected virtual void AddParameters(IDbCommand command, SqlMapper.Identity iden
else
{
p.Value = val ?? DBNull.Value;
-
+
var s = val as string;
if (s?.Length <= 4000)
{
@@ -262,8 +265,8 @@ protected virtual void AddParameters(IDbCommand command, SqlMapper.Identity iden
{
p.Size = param.Size.Value;
}
- }
-
+ }
+
if (add)
{
command.Parameters.Add(p);
@@ -320,6 +323,8 @@ public class OracleParameterInfo
public OracleParameterMappingStatus Status { get; set; }
public IDbDataParameter AttachedParam { get; set; }
+
+ public bool MaskValueWhenLogging { get; set; }
}
///
@@ -328,4 +333,4 @@ public class OracleParameterInfo
///
public IEnumerator GetEnumerator() => Parameters.GetEnumerator();
}
-}
\ No newline at end of file
+}