Я хотел бы создать несколько процедур PL / SQL, которые возвращают XML в качестве параметров CLOB. Я хочу просто сделать это (что отлично работает с простыми тестами):
create or replace procedure p_xml_test_1(
p_xml out nocopy clob
) is
begin
p_xml := '<?xml version="1.0" encoding="utf8" ?>' ||
'<test><something>some value</something></test>';
end p_xml_test_1;
Но у меня есть доступ к другому исходному коду, который в основном делает это:
create or replace procedure p_xml_test_2(
p_xml out nocopy clob
) is
lv_xml clob;
begin
dbms_lob.createtemporary(
lob_loc => p_xml,
cache => true
);
lv_xml := '<?xml version="1.0" encoding="utf8" ?>' ||
'<test><something>some value</something></test>';
dbms_lob.writeappend(
lob_loc => p_xml,
amount => length(lv_xml),
buffer => lv_xml
);
end p_xml_test_2;
Мне интересно, вызовет ли первый метод какие-либо проблемы для меня в будущем. Можно ли так делать? В чем преимущество второго метода? Спасибо!