dbms_metadata

nikoracul
Дата: 28.02.2007 18:41:51
Добрый вечер. Формирую xml пакетом dbms_metadata.get_xml. А как прогрузить этот xml ??? Не врулю хоть убей. Киньте примерчик какой то, кто сталкивался.
_spy_
Дата: 28.02.2007 18:50:35
Куда прогрузить-то?
nikoracul
Дата: 28.02.2007 18:52:25
На одном сервере формируется, а на другом прогрузить. Именно через xml.
nikoracul
Дата: 01.03.2007 10:19:24
ау. люди подскажите решение
_spy_
Дата: 01.03.2007 11:27:48
Версия сервера какая? В 10-ке есть DBMS_METADATA.CONVERT, хотя может это не то, что вам поможет. С чем связано жесткое требование именно через XML?
nikoracul
Дата: 01.03.2007 12:05:21
Сервак 10.2. XML используется как входящий параметр, так сложилось ранее. Дальше можна конвертить в че хоч. Можна проконвертить и в ddl. Но как не врулю. Куча примеров как создать xml, ddl. А вот как с ним дальше работать не понятно. Ну с ddl верней то все ясно, а вот как прогрузить xml или сделать из него ddl неясно.

Нада что типа такое:
procedure put(xml xmltype) is
begin
у здесь уже прогружать.
но как прогрузить или конвертонуть в ddl не пойму и все тут.
end;
_spy_
Дата: 01.03.2007 12:13:54
А почему бы не передавать XML такого вида:
Например:

<DDL>
   CREATE TABLE "MYSCHEMA"."TEST" 
   (	"ID" NUMBER NOT NULL ENABLE
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" ;
</DDL>
С помощью XMLType.ExtractValue() извлекать текст из тега <DDL> и выполнять?
nikoracul
Дата: 01.03.2007 12:47:22
Ну это уже обходные варианты. Хотелось бы сделать все это стандартными функциями пакета.
_spy_
Дата: 01.03.2007 12:54:25
nikoracul
Ну это уже обходные варианты. Хотелось бы сделать все это стандартными функциями пакета.

DBMS_METADATA.CONVERT посмотрели? Не подходит?
DBMS_METADATA.GET_DDL - это стандартная функция пакета, возвращающая текст DDL-команды. А уже в каком формате ее передать между серверами - это решаете вы, т.е. вы вольны выбирать любой формат XML, если он будеть удобным для ваших нужд. Так что вам решать.
nikoracul
Дата: 01.03.2007 13:23:01
DBMS_METADATA.CONVERT смотрел. Он бы подошел нормально да. Судя по документации он конвертирует с xml->ddl. Но как им пользоватся я не врулю. Вот в чем проблема. Там есть первый параметр handle. Откуда брать его? Просто обьявление переменной типа number не катит. Примерчик какой то б увидеть хоть маломальский.