在实时应用程序中,始终需要以XML格式生成从数据库中选择的数据。
使用Oracle,使用内置包DBMS_XMLGEN可以更轻松地生成XML结构化数据。 该包可用于将SELECT查询的OUTPUT转换为XML格式。
以下代码可用于生成XML格式的SELECT Query OUTPUT:
DECLARE
my_context NUMBER := 0;
sample_xml_output VARCHAR2(32767);
data_size NUMBER := 0;
data_chunk NUMBER := 0;
offset NUMBER := 0;
BEGIN
-- Create a New Context
my_context:= DBMS_XMLGEN.NEWCONTEXT ('SELECT * FROM emp order by 1');
DBMS_OUTPUT.PUT_LINE('My New Context ID is:'||my_context);
-- Set the Root Element
DBMS_XMLGEN.SETROWSETTAG(my_context,'EMP_DETAILS');
-- Set the Row Element
DBMS_XMLGEN.SETROWTAG(my_context,'EMP');
-- Generate XML Output
SELECT DBMS_XMLGEN.GETXML(my_context) INTO sample_xml_output FROM DUAL;
data_chunk := LENGTH(sample_xml_output);
offset := 0;
data_size := 200;
-- Print 200 Chunk of data on Screen
LOOP
DBMS_OUTPUT.PUT_LINE(SUBSTR(sample_xml_output,offset + 1,data_size));
offset:= offset + data_size;
data_size := LEAST(200,data_chunk - data_size);
data_chunk := data_chunk - data_size;
EXIT WHEN data_chunk <= 0;
END LOOP;
-- Close