|
|
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:41 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis PopovВ качестве одной мысли: если исходный XML окаймить еще одним элементом, т.е. вложить в некий другой XML, то extract(), с учетом исправленного пути, работает и без namespace. Я сделал так: Код: plaintext 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. В результате запроса my_XML.existsNode('RFP/RESPONSE') получаем '0'. Не получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:46 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, я имел в виду xmldom, использованный в примере А в заблуждение попал из-за версий Oracle: в Oracle 10.2 синоним XMLDOM указывает на пакет sys.DBMS_XMLDOM, а в Oracle 9.2 на sys.XMLDOM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:48 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis PopovИзвиняюсь, я имел в виду xmldom, использованный в примере А в заблуждение попал из-за версий Oracle: в Oracle 10.2 синоним XMLDOM указывает на пакет sys.DBMS_XMLDOM, а в Oracle 9.2 на sys.XMLDOM. В 9-ом Оракле это XDB.DBMS_XMLDOM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:54 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
В дополнение к этому XSL , заметил, что если в XSL указать в имени шаблона не "/", а имя элемента с указанным namespace, то оно работает: Код: plaintext 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. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 18:27 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Ну и напоследок: баловство все это:) Подсказали мне, как получается namespace в XMLType (через тот же XSL): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 18:40 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis PopovНу и напоследок: баловство все это:) Подсказали мне, как получается namespace в XMLType Красивый вариант. Тоесть я снчала извлекаю этот namespace, а потом уже его использую в операторе extract(), как второй параметр. Вроди хорошая реализация (до тех пор, пока в FROM используется extract()). Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 12:01 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Flukky Код: plaintext 1. Только как я могу узнать, сколько элементов <ERROR> у меня в документе? Этот вопрос ещё актуален. Как узнать количество элементов в документе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 12:02 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
FlukkyИ ещё вопрос по этой же теме. Возвращается XML в формате <?xml version="1.0" encoding="utf-8" ?>. Как сменить кодировку на windows-1257? Этот вопрос тоже всё ещё актуален. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 12:12 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Ну, с разборкой XML документов более или менее разобрался. Не исключено, что начав разрабатывать реально приложение (сейчас только тесты), ещё появяться. Теперь есть вопрос про составление XML документа . Какие функции обычно используют для составления XML документа? xmltype(varchar2) и xmltype.createxml(varchar2) я уже знаю (хотя не пойму, чем одна от другой отличаются). Также знаком с функциями из пакета DBMS_XMLDOM и DBMS_XMLPARSER. Но эти функции создают XMLDOMDOCUMENT , а мне хотелось бы узнать, какие функции работают с типом XMLTYPE . Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 12:16 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Если посмотреть Oracle9i Database Online Documentation раздел SQL, PL/SQL, and SQL*Plus syntax and examples. на букву X , то там есть всё, что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 12:37 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
FlukkyЭтот вопрос ещё актуален. Как узнать количество элементов в документе? Думаю, через тот же XMLSequence. FlukkyИ ещё вопрос по этой же теме. Возвращается XML в формате <?xml version="1.0" encoding="utf-8" ?>. Как сменить кодировку на windows-1257? В Оракле есть функция CONVERT для перекодировки строк. На крайняк можно через Java перекодировать весь XML, даже подправив атрибут encoding. FlukkyТакже знаком с функциями из пакета DBMS_XMLDOM и DBMS_XMLPARSER. Но эти функции создают XMLDOMDOCUMENT, а мне хотелось бы узнать, какие функции работают с типом XMLTYPE. Могу врать, но вроде как это независимые вещи. XMLDOM реализован с использованием Java (я получал явские исключения при его использовании) XMLType и иже с ними (м.б. с какой-то версии Оракла) Java не используют и рекомендованы к использованию как главное направление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 13:17 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Я конечно извиняюсь за своё недопонимание, но я не могу найти в доке того, что мне нужно. Там куча информации... Я попросту не знаю, что искать, наверное... В DBMS_XMLDOM были такие процедуры: dbms_xmldom.makeNode dbms_xmldom.createElement dbms_xmldom.appendChild dbms_xmldom.createTextNode А для XMLType я ничего такого не вижу. Ну тоесть, нужно создать структуру дерева, например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Можно, конечно, создать это дело спомощью DBMS_XMLDOM, потом превратить в CLOB/Varchar2, а потом в XMLType. Но я недаюсь, что есть методы по-проще. Спасибо! И извините за глупые вопросы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 15:26 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 16:12 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Спасибо! Очень удобный подход к построению документа в 9-ке! Сейчас пробую разобраться с updateXML(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 19:00 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
А что будет быстрее работать, если мне нужно составить такой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Имена и значения параметров PARAM лежат в массиве. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 19:09 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Легко проверить, думаю, самое быстрый вариант будет заключаться в минимальном использовании объектов. Решил потренироваться: Код: plaintext 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Код: plaintext 1. 2. 3. 4. 5. 6. Единственное, что первые два способа упираются в максимальный размер VARCHAR'а, т.е. 32767 для PL/SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 20:47 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis PopovЛегко проверить, думаю, самое быстрый вариант будет заключаться в минимальном использовании объектов. Спасибо! Без комментариев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 12:23 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Flukky Denis PopovЛегко проверить, думаю, самое быстрый вариант будет заключаться в минимальном использовании объектов. Спасибо! Без комментариев Вообще с XML завязывать надо, ни к чему это хорошему не приведет :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 12:28 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popov FlukkyИ ещё вопрос по этой же теме. Возвращается XML в формате <?xml version="1.0" encoding="utf-8" ?>. Как сменить кодировку на windows-1257? В Оракле есть функция CONVERT для перекодировки строк. Я тут с кодировками запутался. База в кодировке LATVIAN_LATVIA.BLT8CP921 Создать XML документ с encoding="BLT8CP921" не получается, т.к. пишет "System does not support the specified encoding". Создаём XML с encoding="windows-1257". Всё работает. Но теперь я не знаю, что писать в Convert. Кодировка другой базы, куда нужно послать XML документ - UTF-8. Код: plaintext 1. Код: plaintext 1. LPX-00216: invalid character 128 (0x80) Это если есть национальные симболы (отличные от латиницы). Если их нету, парсуется нормально. Где-то в Интеренете есть список всех доступных кодировок для Convert? Наверное, для windows-1257 этот самый 'BLT8CP921' не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 13:07 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
и самое интересное... после того, как я делаю updateXML(), encoding="windows-1257" автоматически изменяется на encoding="UTF-8". Так должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 13:22 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Кстати, в третем случае я накосячил, там идет постоянное обновление одного и того же экземпляра элемента "PARAM", а не добавление нового. Можно переписать следующим образом: Код: plaintext 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. Код: plaintext 1. 2. 3. 4. 5. 6. ИМХО: updateXML хорош для изменения существующего XML, но не для формирования нового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 13:34 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
FlukkyГде-то в Интеренете есть список всех доступных кодировок для Convert? Код: plaintext Flukkyи самое интересное... после того, как я делаю updateXML(), encoding="windows-1257" автоматически изменяется на encoding="UTF-8". Так должно быть? Тут какая-то особенность приведения XMLType к строке Например, с использованием XMLType.getStringVal() Код: plaintext 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. О как. причем возможности указания кодировки вроде как нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 13:57 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popov Тут какая-то особенность приведения XMLType к строке Например, с использованием XMLType.getStringVal() Видимо потому, что getStringVal() работает с CLOB, а кодировка CLOB в базе данных указывается не в 'NLS_CHARACTERSET', а в 'NLS_NCHAR_CHARACTERSET'. Могу ошибаться. Что у Вас говорит такой запрос? Код: plaintext 1. 2. У меня: NLS_CHARACTERSET = BLT8CP921 NLS_NCHAR_CHARACTERSET = UTF8 По-видимому, отсюда UTF8 и выплывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 15:00 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33364691&tid=1886509]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
373ms |
get topic data: |
8ms |
get forum data: |
7ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 683ms |

| 0 / 0 |
