Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OCIDateTime binding - проблема / 1 сообщений из 1, страница 1 из 1
16.01.2003, 11:59
    #32091696
Alexei M. Antipin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OCIDateTime binding - проблема
Пытаемся записать в таблицу значение типа OCIDateTime.

OCIDateTime *sys_date;

// Инициализируем дескриптор
OCIDescriptorAlloc(envhp, (dvoid**) &sys_date, OCI_DTYPE_TIMESTAMP, 0, 0);

text *insert = (text *) "INSERT INTO hypertable(TIME)\
VALUES (:time)";

OCIStmtPrepare(stmthp, errhp, insert,
(ub4) strlen((char *) insert),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT);

// берем системную дату
OCIDateTimeSysTimeStamp ( envhp, errhp, sys_date);

OCIBind *bndTime = (OCIBind *) 0;

OCIBindByPos(stmthp, &bndTime, errhp, 1,
&sys_date, sizeof(sys_date), SQLT_TIMESTAMP,
(dvoid *) 0, (ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT));

OCIStmtExecute(svchp, stmthp, errhp, (ub4) 1, (ub4) 0,
(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL, OCI_DEFAULT);

...

В итоге Execute выдает следующую ошибку:

Error - ORA-01483: invalid length for DATE or NUMBER bind variable

В чем дело? Как побороть?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OCIDateTime binding - проблема / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]