From ad29b3f8cff6b30b54004740f97cea634eec92c7 Mon Sep 17 00:00:00 2001 From: JaBistDuNarrisch Date: Tue, 19 Aug 2025 23:30:41 +0200 Subject: [PATCH] Extend limit in Oracle guard from 30bytes to 128bytes. --- .../Providers/Impl/Oracle/OracleTransformationProvider.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Migrator/Providers/Impl/Oracle/OracleTransformationProvider.cs b/src/Migrator/Providers/Impl/Oracle/OracleTransformationProvider.cs index 759228a4..79ced05c 100644 --- a/src/Migrator/Providers/Impl/Oracle/OracleTransformationProvider.cs +++ b/src/Migrator/Providers/Impl/Oracle/OracleTransformationProvider.cs @@ -137,9 +137,11 @@ public override void AddForeignKey(string name, string primaryTable, string[] pr private void GuardAgainstMaximumIdentifierLengthForOracle(string name) { - if (name.Length > 30) + var utf8Bytes = Encoding.UTF8.GetBytes(name); + + if (utf8Bytes.Length > 128) { - throw new ArgumentException(string.Format("The name \"{0}\" is {1} characters in length, bug maximum length for Oracle identifier is 30 characters.", name, name.Length), "name"); + throw new MigrationException($"The name '{name}' is {utf8Bytes.Length} bytes in length, but maximum length for Oracle identifiers is 128 bytes for Oracle versions 12.1+."); } }