Справочная информация
Я работаю над задачей, чтобы заставить службу получать дату / время целевой БД Oracle, а затем использовать эту дату в качестве полученной даты / временной отметкивходящие данные.Цель состоит в том, чтобы гарантировать, что все хранимые данные максимально точны с точки зрения полученной даты.Насколько я понимаю, это значение можно получить, запросив 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"
.
Вопрос
Кто-нибудь знает простой или лучший способ получить SYSDATE / SYSTIMESTAMP из DUAL, который я могу использовать в C # или NHibernate?