diff --git a/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs b/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs index 0691d0fd95..5476c49862 100644 --- a/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs +++ b/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs @@ -1,4 +1,4 @@ -using NHibernate.Cfg; +using NHibernate.Cfg; using NHibernate.Dialect; using NHibernate.SqlCommand; using NHibernate.Util; @@ -148,5 +148,18 @@ public void CheckUnicodeWithPrefix() } #endregion + [Test] + public void TemporaryTableNameTruncation() + { + string temporaryTableName = new Oracle8iDialect().GenerateTemporaryTableName( + "TABLE_NAME_THAT_EXCEEDS_30_CHARACTERS"); + Assert.AreEqual( + 30, + temporaryTableName.Length); + Assert.AreEqual( + "HT_TABLE_NAME_THAT_EXCEEDS_30_", + temporaryTableName + ); + } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Dialect/Oracle8iDialect.cs b/src/NHibernate/Dialect/Oracle8iDialect.cs index 2843db5e58..e49323f3bd 100644 --- a/src/NHibernate/Dialect/Oracle8iDialect.cs +++ b/src/NHibernate/Dialect/Oracle8iDialect.cs @@ -529,7 +529,7 @@ public override bool SupportsTemporaryTables public override string GenerateTemporaryTableName(String baseTableName) { string name = base.GenerateTemporaryTableName(baseTableName); - return name.Length > 30 ? name.Substring(1, (30) - (1)) : name; + return name.Length > 30 ? name.Substring(0, (30) - (1)) : name; } ///