Когда я использовал NHibernate, это было так близко к, в спящем режиме, что большая часть документации работала на обоих. Попробуйте документы Java, если Вы не можете найти ответ для версии.NET и видеть, работает ли она.
Пробовали ли вы следующее:
CURRENT_TIMESTAMP [(точность)]
select current_timestamp(3) from dual; CURRENT_TIMESTAMP(3) ----------------------------- 10-JUL-04 19.11.12.686 +01:00
Для этого в SQLLDR вам нужно будет использовать EXPRESSION в файле CTL, чтобы SQLLDR знал, как лечить вызов как SQL.
Замените:
LAST_UPDATED SYSTIMESTAMP
на:
LAST_UPDATED EXPRESSION "current_timestamp(3)"
Я принял RC ' s ответ, потому что в конечном итоге он ответил на то, что я спрашивал, но мое незнание некоторых инструментов Oracle заставило меня усложнить задачу, чем нужно.
Я пытался заставить SQL * Loader записывать временную метку, а не просто Дата. Когда я использовал SYSDATE, а затем делал выбор в таблице, он отображал только дату (05-AUG-09).
Затем я попробовал метод RC (в комментариях), и он сработал. Тем не менее, когда я сделал выбор в таблице, я получил тот же формат даты. Затем мне пришло в голову, что это может быть просто усечение остатка для отображения. Итак, я сделал:
select TO_CHAR(LAST_UPDATED,'MMDDYYYY:HH24:MI:SS') from contact;
И он все отобразил. Затем я вернулся к контрольному файлу, изменил его на SYSDATE и выполнил тот же запрос, и, конечно же, HH: MI: SS был там и точным.
Все это делается в SqlDeveloper. Я не Я не знаю, почему по умолчанию используется такое поведение. Также меня сбили с толку следующие два оператора sqldeveloper:
SELECT CURRENT_TIMESTAMP FROM DUAL; //returns a full date and time
SELECT SYSDATE FROM DUAL; // returns only a date