我想创建一些将 XML 作为 CLOB 参数返回的 PL/SQL 过程。我只想这样做(这适用于简单的测试):
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;
我想知道第一种方法是否会给我带来任何问题。这样做可以吗?第二种方法有什么优势(如果有的话)?谢谢!