Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
db2 9.7 Завёлся контрагент присылающий подобные XML-файлы: _____________________________________________________________________ <?xml version="1.0"?> <СведенияОЛицах xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" ВерсияXML="1.0.0.0" xmlns=" http://www.pfr.ru/pfrmid" > <Количество xmlns="">13</Количество> <Лица xmlns=""> <ЛичныеДанные> <ФИО> <Фамилия>... <Имя>... <Отчество>... </Лица> ... <Лица xmlns=""> _____________________________________________________________________ Соответственно, когда я пишу что-то вроде: xmltable('$c/СведенияОЛицах/Лица/ЛичныеДанные' passing xml.xml_content as "c" запрос ничего не возращает, т.к. тэг получается не <Лица> а <Лица xmlns=''> и т.п. Вопрос: Это я недопонимаю чего-то, и можно каким-то образом загружать игнорируя "хвосты", или придётся допиливать руками XML-файл? Выражения типа: _____________________________________________________________________ xmltable('$c/<СведенияОЛицах xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" ВерсияXML="1.0.0.0" xmlns=" http://www.pfr.ru/pfrmid">/Лица xmlns=""/ЛичныеДанные' passing xml.xml_content as "c" _____________________________________________________________________ db2 понимать отказывается, что не удивительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 09:03 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Честный чайник, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 12:50 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, большое спасибо. А есть где-нибудь описание этих секретных подстановок, чтобы понимать, чего оно делает? А то от хелпа по XMLTable только вопросы дополнительный возникают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 13:39 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Честный чайник, XMLTABLE by example, Part 1: Retrieving XML data in relational format См. про XMLTABLE with Namespaces. Это W3C XML стандарт, и полное описание всех возможностей надо смотреть там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 14:32 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Не унимаются эти высокопрофессиональные творческие люди. Всего-то и добавили, перед корневым тэгом "СведенияОЛицах" текст "pfrmid:". Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Соответственно надо как-то исхитриться переписать Код: plsql 1. 2. 3. 4. 5. 6. 7. И теперь варианты xmltable('$c/pfrmid:СведенияОЛицах/*:Лица/ЛичныеДанные' passing xml.xml_content as "c" xmltable('$c/*:pfrmid:СведенияОЛицах/*:Лица/ЛичныеДанные' passing xml.xml_content as "c" не проходят на стадии внедрения хранимой процедуры xmltable('$c/pfrmid:СведенияОЛицах/*:Лица/ЛичныеДанные' passing xml.xml_content as "c" с текстом ZABUGOR.DECODE_ONE_XML - Внедрение для отладки запущено. При создании хранимая процедура возвращен SQLCODE: -16005, SQLSTATE: 10506. ZABUGOR.DECODE_ONE_XML: 4: Выражение XQuery ссылается на имя элемента, имя атрибута, имя типа, имя функции, префикс пространства имен или имя переменной "pfrmid", которые не определены в статическом контексте. QName ошибки =err:XPST0008.. SQLCODE=-16005, SQLSTATE=10506, DRIVER=3.63.108 Выражение XQuery ссылается на имя элемента, имя атрибута, имя типа, имя функции, префикс пространства имен или имя переменной "pfrmid", которые не определены в статическом контексте. QName ошибки =err:XPST0008.. SQLCODE=-16005, SQLSTATE=10506, DRIVER=3.63.108 ZABUGOR.DECODE_ONE_XML - Внедрение для отладки завершилось неудачно. ZABUGOR.DECODE_ONE_XML - Откат выполнен успешно. xmltable('$c/*:pfrmid:СведенияОЛицах/*:Лица/ЛичныеДанные' passing xml.xml_content as "c" ZABUGOR.DECODE_ONE_XML - Внедрение для отладки запущено. При создании хранимая процедура возвращен SQLCODE: -16002, SQLSTATE: 10505. ZABUGOR.DECODE_ONE_XML: 4: В выражении XQuery найден неожиданный элемент " " после "ћР›РёС†Р°С". Список возможных правильных элементов: "ћР›РёС†Р°С". QName ошибки =err:XPST0003.. SQLCODE=-16002, SQLSTATE=10505, DRIVER=3.63.108 В выражении XQuery найден неожиданный элемент " " после "ћР›РёС†Р°С". Список возможных правильных элементов: "ћР›РёС†Р°С". QName ошибки =err:XPST0003.. SQLCODE=-16002, SQLSTATE=10505, DRIVER=3.63.108 ZABUGOR.DECODE_ONE_XML - Внедрение для отладки завершилось неудачно. ZABUGOR.DECODE_ONE_XML - Откат выполнен успешно. Вот именно так с элементами UTF и ругается. Ну оно понятно, как бы 2 пространства имён пытаюсь глупый я указать: любое а потом ещё и pfrmid. К сожалению, грамотности, чтобы объяснить товарищам, что так делать не нужно, не хватает... Можно, конечно, выпилить pfrmid и, наверное, будет счастье, но, боюсь, они полны творческих планов и это далеко не последнее изменение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2015, 07:27 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Честный чайник, Всё то же самое должно работать. Если вы явно указываете в своем выражении XPath имя пространства, то вы должны описать его в XMLNAMESPACES. Пример Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2015, 09:52 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Виноват. Разобрался. Изменения внутри XML не сказались на возможности трактовать его в виде таблицы. Конструкция *:тэг работает и на таком тоже. Формат имени файла, из которого тоже несколько полей бралось, тоже поменяли, в результате запрос не проходил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2015, 08:48 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Ребята, помогите пожалуйста! Задача как у Честного чайника, только элементы в xml содержат атрибуты и надо вытащить именно атрибуты, например, <Client> <FIO ID=1001 VALUE=ИВАНОВ> </FIO> <Adress ID=2001 VALUE=....> </Adress> </Client> Как получить ID и VALUE для FIO? Пробовал различные вариации xmlquery, db2 выдает ошибки 10505, 10507 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2015, 23:56 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
гость_12345, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 10:04 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, спасибо, работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2015, 23:50 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
Ребята, снова к вам за помощью! Есть ли в db2 функция, которая "суммирует" текстовые поля, например: Код: plaintext 1. 2. 3. делаем group by city и получаем: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2015, 21:08 |
|
||
|
загрузка данных из "кривоватых" XML-полей
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 09:36 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38946810&tid=1600769]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 304ms |
| total: | 464ms |

| 0 / 0 |
