Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Распарсить xml в версии 9.4.1 / 2 сообщений из 2, страница 1 из 1
12.03.2021, 10:30
    #40052811
qwerty005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить xml в версии 9.4.1
Доброго дня всем!
Прошу прощения за наивный вопрос, я только начинаю изучать постгрес...
PostgreSQL 9.4.24
(Greenplum Database 6.11.2 build 6.11.2_arenadata10-322.gitf7f2d37.el7)

Можно хоть каким-либо способом распарсить xml примерно так, как описано ниже (пример из документации
https://postgrespro.ru/docs/postgresql/10/functions-xml) в версиях до 10?

Код: 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.
38.
39.
CREATE TABLE xmldata AS SELECT
xml $$
<ROWS>
  <ROW id="1">
    <COUNTRY_ID>AU</COUNTRY_ID>
    <COUNTRY_NAME>Australia</COUNTRY_NAME>
  </ROW>
  <ROW id="5">
    <COUNTRY_ID>JP</COUNTRY_ID>
    <COUNTRY_NAME>Japan</COUNTRY_NAME>
    <PREMIER_NAME>Shinzo Abe</PREMIER_NAME>
    <SIZE unit="sq_mi">145935</SIZE>
  </ROW>
  <ROW id="6">
    <COUNTRY_ID>SG</COUNTRY_ID>
    <COUNTRY_NAME>Singapore</COUNTRY_NAME>
    <SIZE unit="sq_km">697</SIZE>
  </ROW>
</ROWS>
$$ AS data;

SELECT xmltable.*
  FROM xmldata,
       XMLTABLE('//ROWS/ROW'
                PASSING data
                COLUMNS id int PATH '@id',
                        ordinality FOR ORDINALITY,
                        "COUNTRY_NAME" text,
                        country_id text PATH 'COUNTRY_ID',
                        size_sq_km float PATH 'SIZE[@unit = "sq_km"]',
                        size_other text PATH
                             'concat(SIZE[@unit!="sq_km"], " ", SIZE[@unit!="sq_km"]/@unit)',
                        premier_name text PATH 'PREMIER_NAME' DEFAULT 'not specified') ;

 id | ordinality | COUNTRY_NAME | country_id | size_sq_km |  size_other  | premier_name  
----+------------+--------------+------------+------------+--------------+---------------
  1 |          1 | Australia    | AU         |            |              | not specified
  5 |          2 | Japan        | JP         |            | 145935 sq_mi | Shinzo Abe
  6 |          3 | Singapore    | SG         |        697 |              | not specified
...
Рейтинг: 0 / 0
12.03.2021, 12:57
    #40052870
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить xml в версии 9.4.1
qwerty005,

неплохо бы читать документацию именно к вашей базе. https://gpdb.docs.pivotal.io/6-11/admin_guide/query/topics/xml-data.html
Greenplum != PostgreSQL

Проще на приложение утянуть будет и не извращаться.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Распарсить xml в версии 9.4.1 / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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