powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
8 сообщений из 8, страница 1 из 1
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
    #40007325
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь изменить свойства 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
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
    #40007327
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл указать, что в ошибке тыкает на ANYSCHEMA и NONSCHEMA.
...
Рейтинг: 0 / 0
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
    #40010380
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роюсь-роюсь по мануалам и инету, всё без толку.
Нигде нет примеров или описания, что их можно поменять, кроме как в самой доке. Но по синтаксису из доки НУ НИКАК - ни для xmltype-table, ни для xmltype-поля не получается. Ошибка всё та же.

Неужто никто не работает с этим? Или у работающих не возникает ошибки?
...
Рейтинг: 0 / 0
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
    #40010404
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работают.
Мода на 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
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
    #40010417
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася
...
Неужто никто не работает с этим?...
Хм... работали когда то с типом поля XMLTYPE, но не таблицей...
Код: plsql
1.
2.
3.
...
XMLCONTENT  SYS.XMLTYPE
...


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

Ну, как я описывал под спойлером, сначала таблица была с явно указанной схемой, но и на ней та же ошибка 00905. А вообще в доке (см картинку) стоит синтаксис "ALTER TABLE имя" и сразу следом вот так:
...
Рейтинг: 0 / 0
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
    #40010730
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И никаких дополнительных указаний схемы для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
XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
    #40011750
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, кому-то пригодится.

Нашёл методом "творческого тыка" половинчатое решение вопроса, т.е. переключение 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
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLTYPE-таблица - попытка DISALLOW NONSCHEMA вызывает ошибку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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