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 &timestmpStr, const string &fmt,const string &nlsParam = "", const Environment *env = NULL)

Параметры:

  • строка ввода timestmpStr
  • строка формата fm
  • Название языка nlsParam (текущая поддержка английского и американского языков)
  • env, параметры nls которого будут использоваться.

Это может сделать его немного чище, так как вы можете использовать строку, если у вас уже есть дата в виде строки, или можете сделать ее из структуры tm, если это то, что вы используете

Другие вопросы по тегам