powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Insert в поле типа xmltype
18 сообщений из 18, страница 1 из 1
Insert в поле типа xmltype
    #39740523
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Использую функцию xmltype

Подскажите как при вставке проверять значение на NULL
т.к. при инсерте NULL-значения получаю ошибку ORA-19032: Expected XML tag , got no content

Код: plsql
1.
INSERT INTO Table (VALUEXML) VALUES  (xmltype('<?xml version="1.0"?> <greeting>Hello, world!</greeting>'))


так все вставляет корректно
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740524
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поле VALUEXML имеет тип xmltype
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740526
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и можно ли как-то NULL конвертировать в формат xmltype ?
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740528
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предоставьте нормальный test case.

Код: plsql
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.
Connected to Oracle Database 12c Standard Edition Release 12.2.0.1.0 
Connected as user1@//DM/TEST

SQL> create table t1( x xmltype );

Table created

SQL> INSERT INTO t1 VALUES (xmltype('<?xml version="1.0"?> <greeting>Hello, world!</greeting>'));

1 row inserted

SQL> INSERT INTO t1 VALUES (null);

1 row inserted

SQL> commit;

Commit complete

SQL> select rowid, t1.x from t1;

ROWID                                                                            X
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
AAAST4AAHAAAAodAAA                                                               <?xml version="1.0"?>
                                                                                 <greeting>Hello, world!</greeting>
AAAST4AAHAAAAodAAB                                                               

SQL> 

...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740533
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm, дело в том что скрипт гененирует стороннее приложение

Код: plsql
1.
INSERT INTO Table (Field1, Field2, VALUEXML) VALUES (@a, @b, xmltype(сюда_передается_значения_из_поля_типа_xmltype))



и когда туда поступает NULL в качестве аргумента. то получаю ошибку ORA-19032: Expected XML tag , got no content
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740534
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы если передается в функцию xmltype(NULL), то оно бы так и вставляло его NULLом, а если текст то обрабатывала и тоже вставляла
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740538
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все еще нет test case.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Connected to Oracle Database 12c Standard Edition Release 12.2.0.1.0 
Connected as user1@//DM/TEST

SQL> create table t1( x xmltype );

Table created


SQL> INSERT INTO t1 VALUES (xmltype(NULL));

1 row inserted


SQL> 
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740540
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSERT INTO Table_1 (Field1, Field2, VALUEXML)
SELECT Field1, Field2, XMLTYPE(VALUEXML) FROM Table_2;
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740542
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
INSERT INTO Table_1 (Field1, Field2, VALUEXML) 
SELECT Field1, Field2, XMLTYPE(VALUEXML) FROM Table_2;



и вот тут селект дает как нормальные значения, которые функция конвертирует. А если попадает NULL то вылетает с ошибкой
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740547
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
SQL> INSERT INTO t1 VALUES (xmltype(NULL));



а у меня если как у вас вставляю вместо аргумента NULL получаю

SQL Error: ORA-06553: PLS-307: слишком много описаний 'XMLTYPE' соответствуют этому вызову
06553. 00000 - "PLS-%s: %s"
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740554
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORA-06553: PLS-307

Наконец хоть что-то внятное.
И вы с этим сходили в Гугл и что-то почитали?
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740555
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга СеменоваORA-19032: Expected XML tag , got no contentЭто приложение вместо биндов использует пустой литерал ''.
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740569
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdmORA-06553: PLS-307

Наконец хоть что-то внятное.
И вы с этим сходили в Гугл и что-то почитали?

попробовала
Код: plsql
1.
INSERT INTO Table (VALUEXML) VALUES  (xmltype(TO_CHAR(NULL))



ORA-19032: Ожидался тэг XML ,; обнаружен no content
ORA-06512: на "SYS.XMLTYPE", line 310
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740625
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

Bерсию огласи.

SY.
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740681
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

мож у вас "пробельчик" передается, а не null?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> insert into stax_xml values(1,xmltype(trim(' ')))
  2  /
insert into stax_xml values(1,xmltype(trim(' ')))
                              *
ERROR at line 1:
ORA-19032: Expected XML tag , got no content
ORA-06512: at "SYS.XMLTYPE", line 310
ORA-06512: at line 1

SQL> insert into stax_xml values(1,xmltype(null));

1 row created.

SQL>


.....
stax
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740682
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

0. Какая версия оракла
1. Каким типом биндуется параметр на стороне приложения
2. trim
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740686
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C trim погорячился
...
Рейтинг: 0 / 0
Insert в поле типа xmltype
    #39740886
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

зацените:
Код: plsql
1.
2.
3.
4.
5.
with src as (select to_char(null) value from dual)
select xmltype(value) from src

with src as (select to_char(null) value from dual)
select case when value is not null then xmltype(value) end from src
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Insert в поле типа xmltype
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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