powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Каким образом извлечь XML из Varchar2 поля Таблицы
35 сообщений из 35, показаны все 2 страниц
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223175
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.

Есть таблица, у которой есть столбец типа VARCHAR2. В Нем хранится XML данные вида:
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<EquipmentId>9134862155013443</EquipmentId>
<EquipmentType></EquipmentType>
<EquipmentName>E#117</EquipmentName>
</Request>



C помощью java нужно получить значение ячейки. Но проблема в том, что результат имеет вид: "9134862155013443E#117". Но, нужен именно XML, чтобы проверить значение полей (в том числе и пустых).
Каким образом можно получить XML?
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223192
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2,

Прочитал три раза - ничего не понял .
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223196
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,
ну скорее всего у него в базе clob, а он получил указатель и теперь думает что же с ним делать))
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223198
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2,

авторКаким образом можно получить XML?

сами себе ответили
авторЕсть таблица, у которой есть столбец типа VARCHAR2. В Нем хранится XML данные вида:
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223218
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKad,
В java происходит подключение к БД и выполняется запрос, который возвращает значение ячейки в виде строки, "слепленной" из значений тегов. Но нужно получить именно XML в том виде, в котором хранится в БД.

Код Java:
Код: java
1.
2.
List<String> result = new JdbcTemplate(dataSource).queryForList(QUERY, String.class);
System.out.println(result.toString());



Возвращаемое значение:
Код: java
1.
List ["9134862155013443E#117"]

.
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223222
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123ййmubat2,

авторКаким образом можно получить XML?

сами себе ответили
авторЕсть таблица, у которой есть столбец типа VARCHAR2. В Нем хранится XML данные вида:

Нужно после выполнения запроса получить
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<EquipmentId>9134862155013443</EquipmentId>
<EquipmentType></EquipmentType>
<EquipmentName>E#117</EquipmentName>
</Request>


но я получаю
Код: java
1.
List ["9134862155013443E#117"]
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223236
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select xmltype('<?xml version="1.0" encoding="UTF-8"?>
<Request>
<EquipmentId>9134862155013443</EquipmentId>
<EquipmentType></EquipmentType>
<EquipmentName>E#117</EquipmentName>
</Request>') xml
from dual;
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223238
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2,
так ковыряйте авторВ java происходит подключение к БД и выполняется запрос
причем здесь oracle ?
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223246
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А select <столбец типа VARCHAR2> from <таблица>
жава делать не умеет уже?
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223253
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DВАА select <столбец типа VARCHAR2> from <таблица>
жава делать не умеет уже?

Мои знания java + БД ограничиваются лишь executeQuery() :'(
Пожалуйста по-подробнее опишите что Вы имеете ввиду.
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223283
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2столбец типа VARCHAR2докажи
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223285
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2Мои знания java + БД ограничиваются лишь executeQuery() :'(Похоже, вы слишком оптимистично оцениваете свои знания java и БД. Помедитируйте над тем, что именно вы передаете в стандартный вывод.
Hint - list это объект, реализующий список

Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223287
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2DВАА select <столбец типа VARCHAR2> from <таблица>
жава делать не умеет уже?

Мои знания java + БД ограничиваются лишь executeQuery() :'(
Пожалуйста по-подробнее опишите что Вы имеете ввиду.

лучше вы опишите, что вы имеете в QUERY
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223296
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99, совершенно согласен.

-2-mubat2столбец типа VARCHAR2докажи
Код: plsql
1.
2.
3.
4.
SELECT *
FROM dba_tab_columns
WHERE table_name = 'Name'
and column_name = 'MESSAGE';



Результат:
TABLE_NAME = Name, COLUMN_NAME = MESSAGE, DATA_TYPE = VARCHAR2
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223340
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2,
XML как и HTML это строка из букв.
Получи из БД обычную строку. Если она там есть.
Если нет, то запиши туда, а потом получи.
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223420
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2Код Java:
Код: java
1.
2.
List<String> result = new JdbcTemplate(dataSource).queryForList(QUERY, String.class);
System.out.println(result.toString());



У тебя класс JdbcTemplate реализует интерфейс List, т.е это не org.springframework.jdbc.core.JdbcTemplate , а какой-то другой?
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223455
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovУ тебя класс JdbcTemplate реализует интерфейс List, т.е это не org.springframework.jdbc.core.JdbcTemplate , а какой-то другой?
queryForList() совсем не заметен?
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223486
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 12.04.2013 15:07, Blazkowicz wrote:

> queryForList() совсем не заметен?

Извиняюсь, совсем не заметил. Действительно проще тогда не разбирать Xml запросом, а вернуть строку как есть, и уже в
Java превратить ее в xml.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223713
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis PopovOn 12.04.2013 15:07, Blazkowicz wrote:

> queryForList() совсем не заметен?

Извиняюсь, совсем не заметил. Действительно проще тогда не разбирать Xml запросом, а вернуть строку как есть, и уже в
Java превратить ее в xml.


Проблема в том, что в java приходит строка, у которой xml теги опущены и присутствует только их внутренности.
Должно прийти строка вида:
Код: java
1.
<?xml version="1.0" encoding="UTF-8"?><Request><EquipmentId>9134862155013443</EquipmentId><EquipmentType></EquipmentType><EquipmentName>E#117</EquipmentName></Request>


но приходит:
Код: java
1.
9134862155013443E#117
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223739
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 12.04.2013 17:03, mubat2 wrote:

> Проблема в том, что в java приходит строка, у которой xml теги опущены и присутствует только их внутренности.

А как сам запрос выглядит, который передается в queryForist()?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223759
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis PopovOn 12.04.2013 17:03, mubat2 wrote:

> Проблема в том, что в java приходит строка, у которой xml теги опущены и присутствует только их внутренности.

А как сам запрос выглядит, который передается в queryForist()?


Таблица имеет вид:
Код: plsql
1.
2.
3.
CREATE TABLE CUSTOMER_TBL (
NAME VARCHAR2(100),
MESSAGE VARCHAR2(4000));



В столбце MESSAGE как раз и хранится xml

запрос стандартный
Код: plsql
1.
Select MESSAGE  from osa_message_storage;



Код: java
1.
List<String> result = new JdbcTemplate(dataSource).queryForList(QUERY, String.class);
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223776
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2,

osa_message_storage
?
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223815
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123mubat2,

osa_message_storage
?

ой, ошибся.
Запрос имеет вид:
Код: plsql
1.
Select MESSAGE  from CUSTOMER_TBL;
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223820
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2запрос стандартный
да не может такого быть:
- перенаправь запрос на 1 колонку.
Или запиши туда свой текст в конце концов.
И приведи полный КОРОТКИЙ код
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223857
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал выполнить запрос в SQLDeveloper. Он вернул то, что нужно (значение ячейки с тегами):
Код: plsql
1.
<?xml version="1.0" encoding="UTF-8"?><Request><EquipmentId>9134862155013443</EquipmentId><EquipmentType></EquipmentType><EquipmentName>E#117</EquipmentName></Request>



В программе было написано
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
        dataSource.setUrl("jdbc:oracle:thin:@" + DB_SERVER + ":" + DB_PORT + ":" + DB_SID);
        dataSource.setUsername(DB_USER);
        dataSource.setPassword(DB_PASSWORD);
        dataSource.setMaxActive(10);
        dataSource.setAccessToUnderlyingConnectionAllowed(true);
List<String> result = new JdbcTemplate(dataSource).queryForList("Select MESSAGE  from CUSTOMER_TBL", String.class);
System.out.println(result.toString());



Petro123- перенаправь запрос на 1 колонку.
Или запиши туда свой текст в конце концов.для чего перенаправлять, если XML лежит во второй? В первой только имя.
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223864
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2для чего перенаправлять, если XML лежит во второй? В первой только имя.
ok
тогда заменит тот XML текст в БД на "Маша" (в Developer) и получи его Java.
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223869
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123mubat2для чего перенаправлять, если XML лежит во второй? В первой только имя.
ok
тогда заменит тот XML текст в БД на "Маша" (в Developer) и получи его Java.
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223872
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123mubat2для чего перенаправлять, если XML лежит во второй? В первой только имя.
ok
тогда заменит тот XML текст в БД на "Маша" (в Developer) и получи его Java.

Не могу. У меня нет прав на изменение базы.
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223882
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2Не могу. У меня нет прав на изменение базы.
и тестовой БД нет?
Тяжёлый случай)
Тогда по кругу тестируй
14174304
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223919
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2Не могу. У меня нет прав на изменение базы.
Тогда вставь свой запрос:
Код: java
1.
List<String> result = new JdbcTemplate(dataSource).queryForList("select dbms_xmlgen.getXml('select * from DUAL') from DUAL", String.class);
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223958
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popovdbms_xmlgen.getXml
может ему вообще без пакета dbms_xmlgen попроще будет? В самой Java преобразовать.....обычную строку с XML
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223978
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popovmubat2Не могу. У меня нет прав на изменение базы.
Тогда вставь свой запрос:
Код: java
1.
List<String> result = new JdbcTemplate(dataSource).queryForList("select dbms_xmlgen.getXml('select * from DUAL') from DUAL", String.class);



Ecли ты имеешь ввиду, что вместо 'select * from DUAL' вставить свой запрос, я попробовал. Вылетела ошибка на CUSTOMER_TBL:
Код: plsql
1.
^-- error here -- ORA-00911: invalid character 
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38223985
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2Ecли ты имеешь ввиду, что вместо 'select * from DUAL' вставить свой запрос, я попробовал. Вылетела ошибка на CUSTOMER_TBL:
просто вот так сделай:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
List<String> result = new JdbcTemplate(dataSource).queryForList(
  "select \n" +
  "'<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
  "<Request>\n" +
  "<EquipmentId>9134862155013443</EquipmentId>\n" +
  "<EquipmentType></EquipmentType>\n" +
  "<EquipmentName>E#117</EquipmentName>\n" +
  "</Request>'\n" +
  "from DUAL", String.class
);
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38224022
mubat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popovmubat2Ecли ты имеешь ввиду, что вместо 'select * from DUAL' вставить свой запрос, я попробовал. Вылетела ошибка на CUSTOMER_TBL:
просто вот так сделай:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
List<String> result = new JdbcTemplate(dataSource).queryForList(
  "select \n" +
  "'<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
  "<Request>\n" +
  "<EquipmentId>9134862155013443</EquipmentId>\n" +
  "<EquipmentType></EquipmentType>\n" +
  "<EquipmentName>E#117</EquipmentName>\n" +
  "</Request>'\n" +
  "from DUAL", String.class
);



Результат
Код: plsql
1.
 9134862155013443 E#117 
...
Рейтинг: 0 / 0
Каким образом извлечь XML из Varchar2 поля Таблицы
    #38224069
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mubat2Результат
Код: plsql
1.
 9134862155013443 E#117 


А если не-xml подсунуть - тоже вернет не то что передал? У меня-то возвращает именно то что указано в запросе.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Каким образом извлечь XML из Varchar2 поля Таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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