|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
MniorSandalTreeТы местную бюрократию не знаешь. Я что крайний что-ли по инстанциям ходить. Инициатива очень строго наказуема. (по крайней мере, пока проект не горит)Я знаю очень хорошо то что люди очень много болтают подобным образом и при этом ничего , никогда не пробовали сделать. Но самое прискорбное, что когда в очередной 100500 раз явно показываешь, что все нормально можно "пробить" за 2 секунды, то до мозгов это не доходит. Это диагноз, а не бюрократия. Да есть случаи, но "обход" очень часто находится. Как раз когда "не горит" это и делается. Кста, по запросу "837 XSD" что-то ловиться . Только сделайте качественный поиск и анализ. PS: Если бюрократия реально непробиваема (редкий случай). Найдите себе достойную работу. Можете с шефом это осудить. Не холопы же вы. Или нет?Да ладно тебе. Люди болтают... Сегодня у нас делал презентацию по XQuery бывший сотрудник мелкософта. Я к нему подкатил со своим вопросом, он сказал что есть 2 варианта: 1. Разбирать XML/XSD ручками, на что потребуется немеряный героизм и куева туча времени и возможно, проведя кост анализ вам этого совсем не захочется делать. 2. Сохранить все данные в XML поле и тянуть оттуда данные по надобности через XQuery. Тут тоже нехилая проблема с написанием всех запросов и прочего... логики будет вагон и маленькая тележка. Я и так по 12-14 часов в день работаю, я что, лысый что-ли на себя ещё груз брать? Тут дело даже не в лени или ещё чём-то там, просто не хочу гробить 2 месяца своей драгоценной жизни на какую-то муйню, которая возможно через год поменяется и то что я делал улетит коню под хвост. ЗЫ Я твою прогу на домашнем компе ещё не тестировал, всё времени нет. Как протестирую отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2012, 06:53 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
SandalTree , что-то ты через строку читаешь: MniorКста, по запросу "837 XSD" что-то ловиться . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2012, 09:24 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
Mnior SandalTree , что-то ты через строку читаешь: MniorКста, по запросу "837 XSD" что-то ловиться .И? Ты открывал эти файлы? Видел что там? Так вот оно у меня есть. Как я понял, нужен тупой маппинг между XSD и таблицами в базе, ну и конечно-же куева туча рабочего времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2012, 15:58 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
SandalTreeТы открывал эти файлы? Видел что там?Ну XSD. А вы хотели что я всё разжевал как сосунку? SandalTreeТак вот оно у меня есть . Как я понял, нужен тупой маппинг между XSD и таблицами в базе , ну и конечно-же куева туча рабочего времени.Акуеть. Лень не знает ограниений. Альберт ошибался, вторая бесконечность - это не про вселенную. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 10:23 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
MniorSandalTreeТы открывал эти файлы? Видел что там?Ну XSD. А вы хотели что я всё разжевал как сосунку? SandalTreeТак вот оно у меня есть . Как я понял, нужен тупой маппинг между XSD и таблицами в базе , ну и конечно-же куева туча рабочего времени.Акуеть. Лень не знает ограниений. Альберт ошибался, вторая бесконечность - это не про вселенную.Дело не во времени, а в том что нужно его правильно рассчитывать. Вот вам не лень, вы и парсте вручную 30К строк, а я в это время на Багамах отдохну. Ценить нужно своё время, а не тупо работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2012, 03:44 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
SandalTreeВот вам не лень, вы и парсте вручную 30К строк, а я в это время на Багамах отдохну.1. 30K вы загнули. Там всего-то 100 колонок за день без проблем. 2. Не надо каждую букву парсить глазами, а только замапить. Если система сходится на большую чать то вообще можно одним запросом сделать. Если нет, то двумя. 4. У страха глаза велики 5. Это уже полный песец. Если таких как вы будет 30% - *опа нашему мирку на этой планете. 6. Можете перепоручить это кому-нибуть с не отрицательным терпением. Хоть жене. Нахлебник. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2012, 13:29 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
Mnior, пытаюсь грузить XML в базу по методу, описанному Вами в 12410359 . XML: Код: xml 1. 2. 3. 4.
XSD: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Таблица в БД: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Имеем MSSQL2012 + SQLXML 4.0 SP1 Загружаем: Код: sql 1. 2. 3. 4.
Получаем ошибку: Код: sql 1. 2. 3.
В чем может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 15:15 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
и еще вопрос - работает ли SQLXMLBulkLoad на апдейт при попытке сохранения данных с уже существующим ключом? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 15:31 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
wvadik, а где часть авторXSD with SQL Annotation из ответа Как вытащить данные из сложной и многоуровневой XML? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 15:44 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
в моем сообщении 13427070 XSD сразу указана с sql-аннотацией ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 15:47 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
wvadikSQLXMLBulkLoad А БОЛ самому прочесть слабо ,или обязы Mnior для етого нужен XML Bulk Load can operate in either a transacted or a nontransacted mode. Performance is usually optimal if you are bulk loading in a nontransacted mode: that is, the Transaction property is set to FALSE) and either of the following conditions is true: * The tables into which the data is bulk loaded are empty with no indexes. * The tables have data and unique indexes. The nontransacted approach does not guarantee a rollback if something goes wrong in the bulk load process (although partial rollbacks can happen). The nontransacted bulk load is appropriate when the database is empty. Therefore, if something does go wrong, you can clean the database and start XML Bulk Load again. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 15:48 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
wvadikв моем сообщении 13427070 XSD сразу указана с sql-аннотацией Ответ от Mnior Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Ваш вариант Код: sql 1.
помоему все таки разный ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 15:50 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
MaxxwvadikSQLXMLBulkLoad А БОЛ самому прочесть слабо ,или обязы Mnior для етого нужен в данном случае речь идет о производительности и транзакциях. у меня стоит задача поставить этот компонент в работу на поток и грузить данные и новый и которые уже существуют в БД, производя полный их апдейт. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 16:19 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
Maxxwvadikв моем сообщении 13427070 XSD сразу указана с sql-аннотацией Ваш вариант Код: sql 1.
помоему все таки разный проблема не в установлении связей между несколькими таблицами, а расстановке правильных sql:заметок в xsd аннотации для случаев, когда данные хранятся в единственном атрибуте элементов: Код: xml 1. 2. 3. 4. 5. 6. 7.
Чтобы загрузить как: invoiceIDinvoiceStateIDinvoiceStateinvLastOper12389Испорчен27.06.2012_16:08:34 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 16:28 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
Вы сие смотрели ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 16:44 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
Доброго времени суток, уважаемые форумчане. Не хочется плодить похожие темы, апну старую. Заранее прошу прощения за возможно глупый вопрос, но только недавно начал изучать SQLXMLBulkLoad как способ импорта XML файлов. В сообщении 12410359 все подробно описано и замечательно работает, но как быть, если внутри родительского тэга <Records> </Records> появится еще один ребенок <Country> </Country>. Как в этом случае прописать связи sql:relationship между <Company> и <Country> пример xml Код: xml 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.
По аналогии c примером создаю таблицу Country c колонками Name и Company (CONSTRAINT [FK_Country_Company] REFERENCES dbo.Company (ID)) Код: xml 1.
выдает ошибку "No data was provided for column 'Company' on table 'dbo.Country', and this column cannot contain NULL values." Помогите пожалуйста советом, уже неприлично долго пытаюсь победить данную проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 00:45 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
Хде ж у тя, страдалец, в тоей хамээлине ID? ЗЫ. А ежели у тя там будет десяток Company и пяток Country. Чаво будем делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 05:49 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
_kpoIIIka eHoT В сообщении 12410359 все подробно описано и замечательно работает, но как быть, если внутри родительского тэга <Records> </Records> появится еще один ребенок <Country> </Country>. Как в этом случае прописать связи sql:relationship между <Company> и <Country> ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 07:24 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
aleks222 Хде ж у тя, страдалец, в тоей хамээлине ID? В скрипте указываю KeepIdentity = false и при импорте ID сервер генерирует ключ aleks222 ЗЫ. А ежели у тя там будет десяток Company и пяток Country. Чаво будем делать? В одном xml файле Company и Country встречаются по одному разу, но при пакетном импорте файлов, их соответственно будет много. Нужно чтобы они не потерялись. Сейчас, без учета Country результаты импорта выглядят вот так: ID Name 1 ABC ID Name Company 1 Sales 1 2 Transportation 1 ID Name Position Department 1 Vasja Manager 1 2 Olga Secretutka 1 3 Petja Vodila 2 4 Victor Bombila 2 ID Name Company 1 Kolja 1 2 Borja 1 3 Misha 1 А хотелось бы, чтобы еще одна таблица была Country Name Company Russia 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 08:26 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
alexeyvg _kpoIIIka eHoT В сообщении 12410359 все подробно описано и замечательно работает, но как быть, если внутри родительского тэга <Records> </Records> появится еще один ребенок <Country> </Country>. Как в этом случае прописать связи sql:relationship между <Company> и <Country> Возможно я немного путаюсь в определении "Родители-дети", но структура файла именно такая. Совсем нет возможности связать <Company> и <Country> в этом случае ? Пример итоговых таблиц привел выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 08:29 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
_kpoIIIka eHoT alexeyvg пропущено... У вас же Country добавлен не как ребёнок Company, соответственно, откуда между ними могут быть связи? Возможно я немного путаюсь в определении "Родители-дети", но структура файла именно такая. Совсем нет возможности связать <Company> и <Country> в этом случае ? Пример итоговых таблиц привел выше. Конечно, если этой связи нет, то у сервера, или, например, у вас, нет возможности придумать эту связь. Правильная связь - это дочерняя нода <Country> в ноде <Company>, или атрибут. Может сделать и неправильную связь (например, <Country> относится ко всем компаниям, описанным в XML-файле, или ещё как то), но не уверен, что SQLXMLBulkLoad-у можно про это сказать. Придётся это программировать самостоятельно, без SQLXMLBulkLoad. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 08:50 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
alexeyvg Правильная связь - это дочерняя нода <Country> в ноде <Company>, или атрибут. Ровно моя ситуация, с которой бьюсь уже пару дней. Идентификатора связи нет, но дочерний объект вложен в родительский. Парсинг делается в SSIS XML Task, как сделать связь? Мне нужно "протащить" идентификатор PPL_ID в дочерний элемент LINE (их может быть несколько) Что-то туплю, но идей нет. Код: xml 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 09:34 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
Обычно в таких сложных случаях вытаскивают данные с помощью искусственного интеллекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:35 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
SQL2008 alexeyvg Правильная связь - это дочерняя нода <Country> в ноде <Company>, или атрибут. Ровно моя ситуация, с которой бьюсь уже пару дней. Идентификатора связи нет, но дочерний объект вложен в родительский. Парсинг делается в SSIS XML Task, как сделать связь? Мне нужно "протащить" идентификатор PPL_ID в дочерний элемент LINE (их может быть несколько) Что-то туплю, но идей нет. Если ты не врешь и "дочерний объект вложен в родительский". По твоей схеме этого не скажешь. У тебя все просто и незатейливо. При вложении - идентификатор скинуть во вложенные ноды - проще пареной репы. Правда SSIS я не пользуюсь, голый sqlXmlBulkLoad. Код: xml 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. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:57 |
|
Как вытащить данные из сложной и многоуровневой XML?
|
|||
---|---|---|---|
#18+
_kpoIIIka eHoT alexeyvg пропущено... У вас же Country добавлен не как ребёнок Company, соответственно, откуда между ними могут быть связи? Возможно я немного путаюсь в определении "Родители-дети", но структура файла именно такая. Совсем нет возможности связать <Company> и <Country> в этом случае ? Пример итоговых таблиц привел выше. Увы, но альтернативно одаренные программизды - это казнь господня. И этих казней гораздо больше, чем египетской саранчи. Случай в точности соответствует анекдоту про "чукчу-писателя". Т.е. выгружающий данные не думает "как их будут загружать". В общем случае, решается костылями "по месту". Степень гнутости костылей не ограничена. В твоем случае: 1. Грузишь файл с Country и Company независимо, во ВСПОМОГАТЕЛЬНЫЕ пустые таблицы. 2. Копируешь из них в основные, назначив по дороге всем Company единственную Country. 3. Очищаешь ВСПОМОГАТЕЛЬНЫЕ таблицы и повторяешь с п.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 13:09 |
|
|
start [/forum/topic.php?fid=46&msg=38026919&tid=1684062]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
562ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 685ms |
0 / 0 |