From 0c9a4370629c8115f70c66550022357b1ed15360 Mon Sep 17 00:00:00 2001 From: Alex Zaytsev Date: Thu, 25 Sep 2025 15:00:33 +1000 Subject: [PATCH 1/2] Fix current timestamp function --- src/NHibernate/Dialect/Oracle9iDialect.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/NHibernate/Dialect/Oracle9iDialect.cs b/src/NHibernate/Dialect/Oracle9iDialect.cs index b36b1a34b37..347fa0f9ad8 100644 --- a/src/NHibernate/Dialect/Oracle9iDialect.cs +++ b/src/NHibernate/Dialect/Oracle9iDialect.cs @@ -7,10 +7,8 @@ namespace NHibernate.Dialect { public class Oracle9iDialect : Oracle8iDialect { - public override string CurrentTimestampSelectString - { - get { return "select systimestamp from dual"; } - } + public override string CurrentTimestampSelectString => + $"select {CurrentTimestampSQLFunctionName} from dual"; public override string CurrentTimestampSQLFunctionName { From c962d1731657b5803af897d346c95ae242c32d7b Mon Sep 17 00:00:00 2001 From: Alex Zaytsev Date: Thu, 25 Sep 2025 16:12:03 +1000 Subject: [PATCH 2/2] Fix --- src/NHibernate/Dialect/Oracle9iDialect.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/NHibernate/Dialect/Oracle9iDialect.cs b/src/NHibernate/Dialect/Oracle9iDialect.cs index 347fa0f9ad8..8611c204776 100644 --- a/src/NHibernate/Dialect/Oracle9iDialect.cs +++ b/src/NHibernate/Dialect/Oracle9iDialect.cs @@ -10,14 +10,7 @@ public class Oracle9iDialect : Oracle8iDialect public override string CurrentTimestampSelectString => $"select {CurrentTimestampSQLFunctionName} from dual"; - public override string CurrentTimestampSQLFunctionName - { - get - { - // the standard SQL function name is current_timestamp... - return "current_timestamp"; - } - } + public override string CurrentTimestampSQLFunctionName => "localtimestamp"; // Current_timestamp is a timestamp with time zone, so it can always be converted back to UTC. /// @@ -44,6 +37,9 @@ protected override void RegisterFunctions() { base.RegisterFunctions(); + RegisterFunction( + "current_timestamp", + new NoArgSQLFunction("localtimestamp", NHibernateUtil.LocalDateTime, false)); RegisterFunction( "current_utctimestamp", new SQLFunctionTemplate(NHibernateUtil.UtcDateTime, "SYS_EXTRACT_UTC(current_timestamp)"));