Using LLBLGen 2.0 with the Oracle MS driver and an Oracle 8i database, we get the following error when updating/inserting an entity using the Microsoft Oracle Driver :
ORA-12704: character set mismatch
After investigation, it appears that when creating the parameters, the original OracleDbType is converted to a DbType within the
SD.LLBLGen.Pro.DQE.Oracle.OracleSpecificCreator.SelectDbType()
method.
case OracleDbType.Varchar2:
return DbType.String;
When the field's OracleDbType is Varchar2, the returned DbType is DbType.String.
Further, when the query parameter is created, setting the OracleParameter.DbType property to DbType.String automatically sets the corresponding OracleParameter.OracleDbType to OracleDbType.NVarchar2...
I guess this is a bug. The right way should be to set the DbType to AnsiString.
case OracleDbType.Varchar2:
return DbType.AnsiString;
The code is the same for the ODP driver. I is likely that it has to be changed too.