XML - статьи

         

Управление ресурсами


В Oracle Database 10g вы можете использовать модуль DBMS_XDB для создания и удаления ресурсов, папок-фолдеров и связей ресурсов. Вы также можете использовать этот модуль для блокирования/разблокирования ресурсов во время чтения или обновления XML данных: DECLARE res BOOLEAN; xr REF XMLType; x XMLType; BEGIN FOR po_rec IN (SELECT rownum id, ref(p) xref FROM customer p ORDER BY rowid) LOOP res:=DBMS_XDB.createResource('/public/customer'po_rec.id '.xml', po_rec.xref); END LOOP; END;

В этом примере все записи о клиентах считываются из таблицы customer и ресурсные XML документы, созданные в директории /public репозитория XML DB, используют функцию DBMS_XDB.createResource(). Дополнительно в репозитории XML DB можно создать папку /public/important_customer, как показано ниже: DECLARE retb BOOLEAN; BEGIN retb := DBMS_XDB.createFolder('/public/important_customer'); COMMIT; END; /

Далее, можно создать некий ресурс README.txt для отображения содержимого этой папки: DECLARE res BOOLEAN; BEGIN res := DBMS_XDB.createResource('/public/important_customer/README.txt', 'This folder lists all of the US customer who are important to our business'); COMMIT;

END; /

С того момента как создан в директории /public список клиентов, можно создать набор связей, вместо создания второй копии данных: EXEC DBMS_XDB.link('/public/customer1.xml', '/public/important_customer/','SteveJones.xml');

Если вы хотите удалить ресурс, можно использовать функцию DBMS_XDB.DeleteResource():

DBMS_XDB.DeleteResource ('/public/important_customer/SteveJones.xml'); DBMS_XDB.DeleteResource ('/public/customer1.xml');

Вы можете удалить ресурс с ресурсными на него связями. Разумеется, после перемещения оригинального ресурса все связанные ресурсы более с ним не связаны. Каждый из них вместо этого будет содержать копию данных.



Содержание раздела