Oracle occi - отметка времени от времени Unix
У меня есть серверная часть Oracle DB с TIMESTAMP(6)
колонка
Я пытаюсь вставить значение в этот столбец, используя Occi. По-видимому, значение должно быть установлено с помощью setTimestamp()
метод, который принимает окси Timestamp
класс, чтобы связать значение.
Тем не менее, мое значение является меткой времени Unix, и Timestamp
Класс, похоже, не имеет никакой логики для облегчения создания из отметки времени, он принимает только часы, минуты... и т. д. в конструкторе.
Неужели нет более простого способа сделать это? Должен ли я действительно написать свою собственную логику, чтобы получить экземпляр Timestamp
учебный класс?
Я не могу сделать это преобразование метки времени на стороне БД, кстати - по соображениям производительности.
1 ответ
Oracle предлагает в fromText метод:
fromText() Этот метод устанавливает значение отметки времени из строки. Ожидается, что строка будет в указанном формате. Если указано nlsParam, это определит параметры nls, которые будут использоваться для преобразования. Если nlsParam не указан, параметры nls берутся из переданной среды. В случае, если среда не передана, параметры NLS получаются из среды, связанной с экземпляром, если таковая имеется.
Синтаксис void fromText (const string ×tmpStr, const string &fmt,const string &nlsParam = "", const Environment *env = NULL)
Параметры:
- строка ввода timestmpStr
- строка формата fm
- Название языка nlsParam (текущая поддержка английского и американского языков)
- env, параметры nls которого будут использоваться.
Это может сделать его немного чище, так как вы можете использовать строку, если у вас уже есть дата в виде строки, или можете сделать ее из структуры tm, если это то, что вы используете