private static OracleVersion DetectProviderVersion(IConnectionStringSettings css, string connectionString, OracleProvider provider) { try { var cs = string.IsNullOrWhiteSpace(connectionString) ? css.ConnectionString : connectionString; var providerAdapter = OracleProviderAdapter.GetInstance(provider); using (var conn = providerAdapter.CreateConnection(cs)) { conn.Open(); var command = conn.CreateCommand(); command.CommandText = "SELECT VERSION from PRODUCT_COMPONENT_VERSION WHERE ROWNUM = 1"; if (command.ExecuteScalar() is string result) { var version = int.Parse(result.Split('.')[0]); if (version <= 11) { return(OracleVersion.v11); } return(OracleVersion.v12); } return(DefaultVersion); } } catch { return(DefaultVersion); } }
private static OracleVersion DetectProviderVersion(IConnectionStringSettings css, string connectionString, bool managed) { OracleProviderAdapter providerAdapter; try { var cs = string.IsNullOrWhiteSpace(connectionString) ? css.ConnectionString : connectionString; #if NET45 || NET46 if (!managed) { providerAdapter = OracleProviderAdapter.GetInstance(ProviderName.OracleNative); } else #endif providerAdapter = OracleProviderAdapter.GetInstance(ProviderName.OracleManaged); using (var conn = providerAdapter.CreateConnection(cs)) { conn.Open(); var command = conn.CreateCommand(); command.CommandText = "select VERSION from PRODUCT_COMPONENT_VERSION where PRODUCT like 'PL/SQL%'"; var result = command.ExecuteScalar() as string; if (result != null) { var version = int.Parse(result.Split('.')[0]); if (version <= 11) { return(OracleVersion.v11); } return(OracleVersion.v12); } return(DefaultVersion); } } catch { return(DefaultVersion); } }
public Devart11MappingSchema() : base(ProviderName.Oracle11Devart, OracleProviderAdapter.GetInstance(OracleProvider.Devart).MappingSchema, Instance) { }
public Managed11MappingSchema() : base(ProviderName.Oracle11Managed, OracleProviderAdapter.GetInstance(OracleProvider.Managed).MappingSchema, Instance) { }
public Native11MappingSchema() : base(ProviderName.Oracle11Native, OracleProviderAdapter.GetInstance(OracleProvider.Native).MappingSchema, Instance) { }