@@ -23,7 +23,6 @@ public class OracleManagedDataClientDriver : ReflectionBasedDriver, IEmbeddedBat
23
23
private readonly object oracleDbTypeRefCursor ;
24
24
private readonly object oracleDbTypeXmlType ;
25
25
private readonly object oracleDbTypeBlob ;
26
- private readonly object _oracleDbTypeNVarchar2 ;
27
26
28
27
/// <summary>
29
28
/// Initializes a new instance of <see cref="OracleDataClientDriver"/>.
@@ -48,31 +47,8 @@ public OracleManagedDataClientDriver()
48
47
oracleDbTypeRefCursor = Enum . Parse ( oracleDbTypeEnum , "RefCursor" ) ;
49
48
oracleDbTypeXmlType = Enum . Parse ( oracleDbTypeEnum , "XmlType" ) ;
50
49
oracleDbTypeBlob = Enum . Parse ( oracleDbTypeEnum , "Blob" ) ;
51
- _oracleDbTypeNVarchar2 = Enum . Parse ( oracleDbTypeEnum , "NVarchar2" ) ;
52
50
}
53
51
54
- /// <summary>
55
- /// By default, ODP.Net maps <see cref="DbType.String"/> to <c>OracleDbType.Varchar2</c>. If you need it to be mapped
56
- /// to <c>OracleDbType.NVarchar2</c> instead, set this property to <see langword="true"/>.
57
- /// </summary>
58
- /// <remarks>
59
- /// <para>
60
- /// This is not a bug. Varchar2 with Oracle can be Unicode, depending on the server configuration. If the server is
61
- /// configured for having it Unicode, Varchar2 should be used for Unicode string. NVarchar2 is there for allowing
62
- /// storing Unicode string on server not configured for Unicode.
63
- /// http://docs.oracle.com/cd/E51173_01/win.122/e17732/featOraCommand.htm#i1007432
64
- /// </para>
65
- /// <para>
66
- /// So the default NHibernate choice in Oracle dialects to map <see cref="DbType.String"/> to <c>nvarchar2</c> is a bit
67
- /// unfortunate, because this is not the default mapping for Oracle. For tests, since the database is created by NHibernate,
68
- /// string columns get typed <c>nvarchar2</c>, but parameters are still typed <c>varchar2</c>, causing an
69
- /// <c>ORA-12704: character set mismatch</c> for some queries. This being not even reported, I guess most NHibernate Oracle
70
- /// users handles their tables themselves and types them with <c>varchar2</c>, avoiding the trouble. So changing the behavior
71
- /// for parameters type would be a major breaking change.
72
- /// </para>
73
- /// </remarks>
74
- public bool UseNVarchar2ForStringParameter { get ; set ; }
75
-
76
52
/// <summary></summary>
77
53
public override string NamedPrefix
78
54
{
@@ -113,12 +89,6 @@ protected override void InitializeParameter(DbParameter dbParam, string name, Sq
113
89
case DbType . Binary :
114
90
InitializeParameter ( dbParam , name , oracleDbTypeBlob ) ;
115
91
break ;
116
- case DbType . String :
117
- if ( UseNVarchar2ForStringParameter )
118
- InitializeParameter ( dbParam , name , _oracleDbTypeNVarchar2 ) ;
119
- else
120
- base . InitializeParameter ( dbParam , name , sqlType ) ;
121
- break ;
122
92
default :
123
93
base . InitializeParameter ( dbParam , name , sqlType ) ;
124
94
break ;
0 commit comments