public void OracleLimitIdentifierLength() { var names = new[] { "123456789012345678901234567890", "123456789012345678901234567890a", "123456789012345678901234567890b" }; Assert.AreEqual("30, 31, 31", TestUtility.Dump(names, name => name.Length)); var limited = names.Select(name => OracleSqlUtility.LimitIdentifierLength(name)).ToArray(); TestUtility.Dump(limited); Assert.AreEqual(names[0], limited[0]); Assert.AreEqual(30, limited[1].Length); Assert.AreEqual(30, limited[2].Length); Assert.IsFalse(limited[1].Equals(limited[2], StringComparison.OrdinalIgnoreCase)); }
private void SafeExecuteCommand(Action <OracleCommand> action) { using (var connection = new OracleConnection(_connectionString)) { OracleTransaction transaction = null; OracleCommand com; try { connection.Open(); OracleSqlUtility.SetSqlUserInfo(connection, _userInfo); transaction = connection.BeginTransaction(); com = connection.CreateCommand(); com.CommandTimeout = SqlUtility.SqlCommandTimeout; com.Transaction = transaction; } catch (OracleException ex) { if (transaction != null) { transaction.Rollback(); } var csb = new OracleConnectionStringBuilder(_connectionString); string msg = string.Format(CultureInfo.InvariantCulture, "Could not connect to data source '{0}', userID '{1}'.", csb.DataSource, csb.UserID); _logger.Error(msg); _logger.Error(ex.ToString()); throw new FrameworkException(msg, ex); } try { var setNationalLanguage = OracleSqlUtility.SetNationalLanguageQuery(); if (!string.IsNullOrEmpty(setNationalLanguage)) { _logger.Trace("Setting national language: {0}", SqlUtility.NationalLanguage); com.CommandText = setNationalLanguage; com.ExecuteNonQuery(); } action(com); transaction.Commit(); } catch (OracleException ex) { if (com != null && !string.IsNullOrWhiteSpace(com.CommandText)) { _logger.Error("Unable to execute SQL query:\r\n" + com.CommandText); } string msg = "OracleException has occurred:\r\n" + ReportSqlErrors(ex); if (ex.Number == 911) { msg += "\r\nCheck that you are not using ';' at the end of the command's SQL query."; } _logger.Error(msg); _logger.Error(ex.ToString()); throw new FrameworkException(msg, ex); } finally { TryRollback(transaction); } } }
public void OracleGetSchemaName() { Assert.AreEqual("someschema", OracleSqlUtility.GetSchemaName("someschema.someview")); TestUtility.ShouldFail(() => OracleSqlUtility.GetSchemaName("someview"), "Missing schema"); }