Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Xpath count / 22 сообщений из 22, страница 1 из 1
21.02.2017, 13:49
    #39408472
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Приветствую всех. Есть в базе firebird таблица с полем blob sub_type 1segment size 80 в этом поле хранится строка в формате xml
Код: xml
1.
2.
3.
4.
5.
6.
<doc STARTDATE="01.07.2014" ENDDATE="01.01.2033" PLANGROUP_ID="1135811" DOC_NUM="1" ZIP="&#209;&#224;&#237;&#234;&#242;-&#207;&#229;&#242;&#229;&#240;&#225;&#243;&#240;&#227;" Street="&#239;&#235;. &#202;&#238;&#237;&#241;&#242;&#232;&#242;&#243;&#246;&#232;&#232;" House="&#228;. 2">
<Numbers>
<Num CONNECT_TYPES="1-5" STARTDATE="01.07.2014" ENDDATE="01.01.2033" NUM_ID="8123319492" PERIOD_PRICE="540" CITY_PRICE="0" COMMENT="&#195;&#238;&#235;&#238;&#241;&#238;&#226;&#224;&#255; &#241;&#226;&#255;&#231;&#252;" NUM_TYPE="&#195;&#205;"/>
</Numbers>
<DR/><LL/><PD/></doc> 
 


Выполняю запрос
Код: sql
1.
2.
3.
4.
5.
select   xpath(xml,'count(doc/Numbers/Num)')
from    cust_docs
where
cust_id = 1134819
  


запрос ничего не возвращает , на тестовых сайтах для xpath с данным xml возвращает значение 1, уже как только не пробовал не могу понять в чем прикол.
...
Рейтинг: 0 / 0
21.02.2017, 13:58
    #39408480
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr,

Код: sql
1.
2.
3.
4.
select   *
from    cust_docs
where
cust_id = 1134819



в этот запрос что-нибудь возвращает?
...
Рейтинг: 0 / 0
21.02.2017, 13:59
    #39408483
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr
Код: sql
1.
xpath(xml,'count(doc/Numbers/Num)')


Откуда информация, что такой синтаксис поддерживается?

Немного возможностей описано тут http://www.ibase.ru/xmldb/
Ну и тут в разделе есть несколько тем по udf xpath.
...
Рейтинг: 0 / 0
21.02.2017, 14:20
    #39408499
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
авторСимонов Денис
Да возвращает 5 строк

авторwadman

Ну на форумах есть куча примеров правда для xpath sql c count, для firberd не могу найти, вытащить атрибут или выборка по нужному атрибуту не вызывает проблем
...
Рейтинг: 0 / 0
21.02.2017, 14:28
    #39408504
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Неверно выразился верхний запрос тоже возвращает пять строк , только пустых
...
Рейтинг: 0 / 0
21.02.2017, 14:37
    #39408515
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr, не совсем понятно, что именно ты хочешь получить - сумму значений атрибутов Num или количество элементов Num в Numbers.
Может тебе это надо?:
Код: sql
1.
2.
3.
SELECT Sum(Cast(xpath(xml,'count(doc/Numbers/Num)') AS INTEGER))
  FROM cust_docs
  WHERE cust_id = 1134819
...
Рейтинг: 0 / 0
21.02.2017, 14:50
    #39408521
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
мипардон! Если Num - атрибут, то как-то так:
Код: sql
1.
2.
3.
SELECT Sum(Cast(xpath(xml,'count(doc/Numbers/@Num)') AS INTEGER))
  FROM cust_docs
  WHERE cust_id = 1134819
...
Рейтинг: 0 / 0
21.02.2017, 14:52
    #39408522
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
rdb_devWepr, не совсем понятно, что именно ты хочешь получить - сумму значений атрибутов Num или количество элементов Num в Numbers.




Проблема в том, что xpath(xml,'count(doc/Numbers/Num)') вообще ничего не возвращает, мне нужно проверить наличие этого тега и я понять не могу может у FireBird есть ограничение на использование xpath или может xpath не нравится поле blob где лежит эта строка
...
Рейтинг: 0 / 0
21.02.2017, 14:57
    #39408525
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr, я забыл убрать count
Что именно надо получить? Дай словесное описание.
...
Рейтинг: 0 / 0
21.02.2017, 15:02
    #39408532
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr, Num, это что? Элемент или атрибут?
...
Рейтинг: 0 / 0
21.02.2017, 15:15
    #39408551
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
rdb_dev,
Num элемент пример xml в самом верху
...
Рейтинг: 0 / 0
21.02.2017, 15:21
    #39408559
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
rdb_dev
мне нужно проверить наличие этого элемента в дереве и их количество, задача проверить у Элемента Numbers наличие элементов Num и их количество
...
Рейтинг: 0 / 0
21.02.2017, 15:44
    #39408572
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr, остается вариант, что у тебя всё правильно, а функция count не поддерживается в данной реализации UDF функции xpath
...
Рейтинг: 0 / 0
21.02.2017, 15:58
    #39408575
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
rdb_dev,

ок спасибо
...
Рейтинг: 0 / 0
21.02.2017, 16:09
    #39408582
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr, если библиотека поддерживает фильтры [], можно попробовать подсчитать количество элементов Num вручную в ХП.
...
Рейтинг: 0 / 0
21.02.2017, 16:43
    #39408618
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
rdb_dev,

Нубский вопрос , как проверить в ib expert что за библиотеки подключены и их версии
...
Рейтинг: 0 / 0
21.02.2017, 17:43
    #39408666
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Weprкак проверить
Какие подключены - в списке объявленных UDF. Версии - никак.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.02.2017, 09:15
    #39408888
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Wepr, зайти в подкаталог с udf библиотеками и посмотреть свойства библиотеки? Можно с помощью CFF Explorer.
...
Рейтинг: 0 / 0
22.02.2017, 11:23
    #39408973
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
rdb_dev,
спасибо
...
Рейтинг: 0 / 0
22.02.2017, 15:32
    #39409193
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Еще один вопрос , как вытащить из blob xml , напрямую select не вытаскивает,
Код: sql
1.
2.
3.
4.
SELECT      cust_docs.*,
    SUBSTRING(xml FROM 1 FOR 32000) AS VARCHAR(32000)) AS myblobfield
FROM        cust_docs   where
cust_id = 1134819


сильно тупит а на стороне клиента тоже фигню получает
...
Рейтинг: 0 / 0
22.02.2017, 15:38
    #39409199
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Weprсильно тупит а на стороне клиента тоже фигню получает http://www.ibase.ru/ibfaq/#blob
...
Рейтинг: 0 / 0
22.02.2017, 19:22
    #39409364
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xpath count
Weprсильно тупит а на стороне клиента тоже фигню получает
описание проблем просто очешуительное.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Xpath count / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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