powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OCI Direct Path Load API и SQLT_TIMESTAMP
13 сообщений из 13, страница 1 из 1
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561661
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно вопрос

документация недвусмысленно намекает, что SQLT_TIMESTAMP поддерживается в OCI Direct Path API. Как 187-й код.

https://docs.oracle.com/database/122/LNOCI/direct-path-load-interface.htm#LNOCI16910


Но запихнуть его в базу данных удалось только указав 180-й код, подсмотрев его в DUMP()
На 187-м валится, говоря про ошибки конверсии, и хоть ты тресни.
С другими типами (SQLT_NUM, SQLT_TIMESTAMP_TZ, SQLT_TIMESTAMP_LTZ) таких приколов не наблюдается.

К вящему удивлению интенсивный гуглеж, металинкеж и стэкофервлевеж не выдал вообще никаких примеров на этот счет, от слова вообще ничего.
Все родные примеры и демки от Oracle показывают только как работать с SQLT_CHR

Беглый просмотр всяких библиотек (FireDAC/AnyDAC, DOA, ODAC) показал и вовсе какое-то зачаточное развитие в этом вопросе - в них поддерживается только SQT_DAT (т.е. DATE), про TIMESTAMP вообще ничего.


Может у кого есть примеры как нужно правильно работать с TIMESTAMP-ами Direct Path Loading OCI API?

Нет, не то чтоб совсем уж надо, запинать мне руками удалось, но сомнения в том, что это никак недокументированным способом получилось, это настораживает.
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561665
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatch,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select o.name, 
       t.typecode
from sys.type$ t, sys.obj$ o,
     sys.obj$ so, sys.user$ su
where typecode between 180 and 188
  and bitand(t.properties, 64) = 64  -- u.name is null
  and o.oid$ = t.tvoid
  and o.subname IS NULL -- only the latest version
  and o.type# <> 10 -- must not be invalid
  and bitand(t.properties, 2048) = 0 -- not system-generated
  and t.supertoid = so.oid$ (+) and so.owner# = su.user# (+)
order by t.typecode

а что за тип 180? какая версия оракла?

Код: plsql
1.
2.
3.
4.
5.
SQL> select dump(timestamp'2017-01-01 00:00:00') from dual;

DUMP(TIMESTAMP'2017-01-0100:00:00')
---------------------------------------------------------
Typ=187 Len=20: 225,7,1,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561666
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatch,

ааа, дошло...
Код: plsql
1.
2.
3.
create table ts (ts timestamp);
insert into ts values(systimestamp);
select dump(ts) from ts;
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561667
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender
Код: plsql
1.
2.
3.
4.
5.
SQL> select dump(timestamp'2017-01-01 00:00:00') from dual;

DUMP(TIMESTAMP'2017-01-0100:00:00')
---------------------------------------------------------
Typ=187 Len=20: 225,7,1,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0



Господи, детский сад штаны на лямках.

Ты dump() посмотри на значение поля из таблицы, а не результат функции или скаляр.
Там и тип, и длина другая.

В internals это все описано-же http://www.orafaq.com/wiki/Timestamp
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561668
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561669
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatch,

выпендрился? успокоился?

зы... памяти у меня на все не хватает
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561670
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderdbpatch,

https://ellebaek.wordpress.com/2011/02/25/oracle-type-code-mappings/

Это я видел, но это не отвечает на вопрос - что легально нужно/можно совать в этот блин OCI Direct Path Loader API()

Документация говорит суй SQLT_TIMESTAMP - а оно не суется.

При этом для таймзоновых TIMESTAMP можно совать SQLT_ типы или DUMP() типы в описание колонки - что самое интересное, понимает оба варианта с одинаковым результатом
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561671
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatch,

ну ты же очень умный и без лямок, наверное проверил и на 11.2 и на >=12.1 после фикса Bug 9447780?
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561672
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
и в 12.2 тоже было "bind changes" который породил еще кучку багов, так что и там может быть отдельное
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561673
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderdbpatch,

ну ты же очень умный и без лямок, наверное проверил и на 11.2 и на >=12.1 после фикса Bug 9447780?

это про OCCI и bind

а я про OCI и direct path API, два раза мимо
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561676
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatch,

Ну так и на каких версиях ты проверил?
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561680
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderdbpatch,

Ну так и на каких версиях ты проверил?

>= 10.2
...
Рейтинг: 0 / 0
OCI Direct Path Load API и SQLT_TIMESTAMP
    #39561722
xtenderНу так и на каких версиях ты проверил?Есть ли основания сомневаться?
Timestamp появился в 9.0, как в документации той версии указан код типа 180, так и в 12.2. Иначе работоспособность OCI-приложений под вопросом.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OCI Direct Path Load API и SQLT_TIMESTAMP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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