Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку / 8 сообщений из 8, страница 1 из 1
10.10.2020, 21:39
    #40007325
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
Пытаюсь изменить свойства ANYSCHEMA и NONSCHEMA у таблицы, но получаю ошибку:
Код: 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.
Connected to Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 
Connected as u99

SQL> CREATE TABLE xml_tab1 OF XMLTYPE;

Table created

SQL> SELECT storage_type, anyschema, nonschema FROM all_xml_tables WHERE table_name = 'XML_TAB1';

STORAGE_TYPE                                                         ANYSCHEMA    NONSCHEMA
-------------------------------------------------------------------- ------------ ------------
BINARY                                                               NO           YES

SQL> ALTER TABLE xml_tab1 DISALLOW NONSCHEMA;

ALTER TABLE xml_tab1 DISALLOW NONSCHEMA

ORA-00905: отсутствует ключевое слово

SQL> ALTER TABLE xml_tab1 ALLOW ANYSCHEMA;

ALTER TABLE xml_tab1 ALLOW ANYSCHEMA

ORA-00905: отсутствует ключевое слово

SQL>

Судя по синтаксической диаграмме, текст команды вроде правильный.
В ограничениях применения написано ALLOW| DISALLOW clauses are valid only if you have specified BINARY XML storage.Как видно из запроса, STORAGE_TYPE соблюдён. Никаких других ограничений в доках не нашёл.

Что ему не так?

Вообще дока по XMLTYPE-таблицам и колонкам вся как вареные спагетти - позаплетено так, что фиг разберёшься. Больше половины опций несовместимы в каких-то случаях между собой, причём этих случаев в разы больше, чем самих опций, и в доках описана только мала доля. Остальные определяются методом тыка.

Что же касается сабжа, я так и не нашёл НИ ОДНОЙ комбинации свойств таблицы, где бы работали эти ALTER-команды. Наткнулся на нормальной таблице, базирующейся на зарегистрированной xml-схеме, потом всё упрощал и упрощал. В итоге пришёл к тому, что процитировал выше, но ошибку так и не понял. На ORA 19 та же фигня.
...
Рейтинг: 0 / 0
10.10.2020, 21:41
    #40007327
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
Да, забыл указать, что в ошибке тыкает на ANYSCHEMA и NONSCHEMA.
...
Рейтинг: 0 / 0
21.10.2020, 01:32
    #40010380
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
Роюсь-роюсь по мануалам и инету, всё без толку.
Нигде нет примеров или описания, что их можно поменять, кроме как в самой доке. Но по синтаксису из доки НУ НИКАК - ни для xmltype-table, ни для xmltype-поля не получается. Ошибка всё та же.

Неужто никто не работает с этим? Или у работающих не возникает ошибки?
...
Рейтинг: 0 / 0
21.10.2020, 08:37
    #40010404
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
Не работают.
Мода на XML прошла, сейчас народ в json ударился.
...просто для размышления - сложно изменить таблицу в состояние, которое нельзя создать:
Код: plsql
1.
2.
3.
4.
5.
CREATE TABLE xml_tab3 OF XMLTYPE
XMLTYPE store as BINARY XML DISALLOW NONSCHEMA
 
ORA-44421: cannot DISALLOW NONSCHEMA without a SCHEMA clause
;
...
Рейтинг: 0 / 0
21.10.2020, 10:26
    #40010417
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
Правильный Вася
...
Неужто никто не работает с этим?...
Хм... работали когда то с типом поля XMLTYPE, но не таблицей...
Код: plsql
1.
2.
3.
...
XMLCONTENT  SYS.XMLTYPE
...


Не знаю, зачем таблица XMLTYPE ???
...
Рейтинг: 0 / 0
21.10.2020, 23:52
    #40010727
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
andrey_anonymous
сложно изменить таблицу в состояние, которое нельзя создать

Ну, как я описывал под спойлером, сначала таблица была с явно указанной схемой, но и на ней та же ошибка 00905. А вообще в доке (см картинку) стоит синтаксис "ALTER TABLE имя" и сразу следом вот так:
...
Рейтинг: 0 / 0
22.10.2020, 00:00
    #40010730
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
И никаких дополнительных указаний схемы дляORA-44421: cannot DISALLOW NONSCHEMA without a SCHEMA clauseСхема и так для таблицы уже задана заранее.
Ведь все данные в таблице уже по ней равняются. Если даже попытаться указать схему явно (я пробовал указать другую командой, которая не описана в доке:
Код: plsql
1.
2.
3.
ALTER TABLE xmltable_blob
MODIFY XMLTYPE 
XMLSCHEMA "http://www.oracle.com/warehouses.xsd" ELEMENT "Warehouse";

Это проходит !? , если убрать disallow, что за бред?!, как так?!), то всё равно с disallow ругается 19001.
...
Рейтинг: 0 / 0
26.10.2020, 01:53
    #40011750
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
Может, кому-то пригодится.

Нашёл методом "творческого тыка" половинчатое решение вопроса, т.е. переключение DISALLOW -> ALLOW. В обратную сторону не работает.

Для XMLTYPE-таблицы:
Код: plsql
1.
2.
3.
4.
5.
ALTER TABLE xmltable_blob
MODIFY XMLTYPE ALLOW ANYSCHEMA;

ALTER TABLE xmltable_blob
MODIFY XMLTYPE ALLOW NONSCHEMA;


Для XMLTYPE-поля в реляционной таблице:
Код: plsql
1.
2.
3.
4.
5.
ALTER TABLE xmltype_blob
MODIFY XMLTYPE COLUMN fld2."XMLDATA" ALLOW ANYSCHEMA;

ALTER TABLE xmltype_blob
MODIFY XMLTYPE COLUMN fld2."XMLDATA" ALLOW NONSCHEMA;


Использованный синтаксис с MODIFY XMLTYPE в документации не описан, равно как и явное указание "XMLDATA". Но при этом работает на 12.2 ЕЕ и 19 ЕЕ, в других не проверял.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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