|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Всем привет! Есть тег, похожий на TIMESTAMP, в котором приходит дата и время. Код: xml 1.
В функции XMLTABLE в предложении COLUMNS я его интерпретирую как TIMESTAMP WITH TIME ZONE Код: plsql 1.
а в инструкции SELECT преобразую к типу DATE, так как хочу записать в столбец таблицы, который имеет тип DATE Код: plsql 1.
Итоговая конструкция получается такой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Но возникает ошибка ORA-01858: вместо ожидаемой цифры обнаружен нецифровой символ Как сделать, чтобы парсинг и инсерт проходили успешно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 11:21 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
В XSD элемент описан так: Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 11:42 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 11:48 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 12:24 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7, покажите пример, у меня, например, проблема не воспроизводится: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 12:46 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
TZ добавить по вкусу ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 12:46 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Hammer ultrasonic7, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Не? жесть, конечно, с '' и вообще с проверками... ну, и в целом, ладно у автора 11й оракл, но сейчас есть TO_UTC_TIMESTAMP_TZ + "on conversion error" как у to_date/to_timestamp[_tz] так и у cast ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 13:13 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Hammer, ваш вариант не работает, к сожалению. Код: plsql 1.
Выдаёт ошибку: [Error] Execution (1: 8): ORA-01830: шаблон формата даты завершается перед преобразованием всей строки ввода Есть ещё и дробные части секунд, их надо отбросить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 13:32 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Sayan Malakshinov, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
та же ошибка выдаётся ORA-01858: вместо ожидаемой цифры обнаружен нецифровой символ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 13:38 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Vadim Lejnin, мне надо к типу не TIMESTAMP, а DATE ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 13:45 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7, У Вас varchar, сделайте to_date ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 13:49 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Vadim Lejnin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
[Error] Execution (15: 25): ORA-01821: формат даты не распознан Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
[Error] Execution (15: 14): ORA-01830: шаблон формата даты завершается перед преобразованием всей строки ввода ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 13:59 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7 Есть ещё и дробные части секунд, их надо отбросить. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2021, 14:10 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Stax, Код: plsql 1.
Вот этот вариант работает. Только почему остальные варианты на моей машине не работали, когда у других они работали? Может, дело в параметрах сессии на моей машине или в каком-то параметре реестра? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2021, 09:21 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Код: plsql 1.
Вот параметры моей сессии: параметры сессииNLS_LANGUAGE RUSSIAN NLS_TERRITORY RUSSIA NLS_CURRENCY р. NLS_ISO_CURRENCY RUSSIA NLS_NUMERIC_CHARACTERS , NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD.MM.RR NLS_DATE_LANGUAGE RUSSIAN NLS_SORT RUSSIAN NLS_TIME_FORMAT HH24:MI:SSXFF NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR NLS_DUAL_CURRENCY р. NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE Мне еще сказали, чтобы в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\oracle\KEY_OraClient11g_home1 посмотреть параметр NLS_LANG Он установлен в AMERICAN_AMERICA.WE8MSWIN1252 А у вас какие настройки, уважаемые участники форума? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2021, 09:36 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7, Мессир, крайне порочная практика рассчитывать на NLS настройки клиента Это так называемая NLS Bomb пишите NLS независимый код ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2021, 12:17 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Vadim Lejnin, так я разве сказал, что рассчитывать на NLS настройки клиента это хорошая идея? И как его писать, NLS независимый код? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2021, 14:20 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7, Если кратко, явно указывать format mask если нужно преобразования string -> date/number И вообще следить за преобразованиями типов Давай по пунктам: Пример что у Вас не работало, и работало у других ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2021, 15:32 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Vadim Lejnin, Собственно, не работал запрос, указанный в начале темы, который отлично работал у других. После определённых танцев с бубном он заработал. А писать код в другом стиле мне нельзя, потому что у меня на работе есть определённые правила написания кода. И код, который я пишу, на машинах других сотрудников работает. И вот сейчас, когда проблема решена, мне нужно проверить одно предположение. Хочу попросить Вас, а также Hammer, Sayan Malakshinov, Stax найти время, чтобы отыскать в реестре параметр NLS_LANG. Обычно он находится в ветке HKEY_LOCAL_MACHINE\SOFTWARE\oracle\KEY_OraClient11g_home1. Но может находиться и в других ветках. В этом случае можно воспользоваться поиском по реестру параметра NLS_LANG. Скажите, пожалуйста, какое значение имеет этот параметр? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2021, 10:02 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7 А писать код в другом стиле мне нельзя, потому что у меня на работе есть определённые правила написания кода. UKRAINIAN_UKRAINE.CL8MSWIN1251 ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2021, 10:16 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Stax, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2021, 10:27 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
ultrasonic7, непонятно чем Вас не устраивает 22364235 или у Вашем стиле запрещено указывать маску? нужна дата, приведите timestamp к дате или сразу,напр ,to_date(substr(t.testdate,1,19),'YYYY-MM-DD"T"HH24:MI.SS') d ps обратите внимание и на NLS_TIMESTAMP_FORMAT/NLS_TIMESTAMP_FORMAT ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2021, 10:43 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
А у других форумчан этот параметр какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2021, 10:47 |
|
Корректная обработка TIMESTAMP
|
|||
---|---|---|---|
#18+
Stax, Да, есть некие корпоративные правила, которые запрещают указывать маску. Меня просили, к каком стиле написать - будь добр написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2021, 10:50 |
|
|
start [/forum/topic.php?fid=52&msg=40093243&tid=1879942]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 144ms |
0 / 0 |