背景
我正在执行一项任务,以强制执行一项服务以获取目标Oracle DB的日期/时间,然后将该日期用作传入数据的接收日期/时间戳。目的是确保所有存储的数据在接收日期方面都尽可能准确。据我了解,可以通过查询DUAL来获取此值,例如:SELECT SYSDATE FROM DUAL
或SELECT SYSTIMESTAMP FROM DUAL
。我正在使用的服务将自定义NHibernate用于其许多数据库调用。我知道我也可以利用LINQ查询来满足自己的需求。
不幸的是,我的许多努力都是徒劳的。
尝试的解决方案
我曾经尝试使用Google来查看是否有人有一个类似于上述语句的简单LINQ查询示例,但这一切都陷入了僵局。尽管付出了很多努力,但我仍然无法查询关于stackoverflow的问题。
我还研究了创建存储过程并设法创建了某种可以起作用的东西:
create or replace PROCEDURE GET_SYSDATE
( SYSTEM_DT OUT SYS_REFCURSOR )
IS
BEGIN
OPEN SYSTEM_DT FOR SELECT SYSDATE FROM DUAL;
END GET_SYSDATE;
但是,当我尝试从应用程序中调用它时,就像这样:
var returnedDt = _unitOfWork.ExecuteStoredProcedure("GET_SYSDATE");
我遇到了"identifier 'GET_SYSDATE' must be declared"
错误。
问题
有人知道我可以在C#或NHibernate中使用的从DUAL获取SYSDATE / SYSTIMESTAMP的简单或更好的方法吗?