Вы всегда можете вернуть XML из своей функции, если это подходит разработчикам приложений.
XML может быть сгенерирован несколькими способами в Oracle, в зависимости от того, что вы установили и какую версию вы используете.
XMLTYPE очень полезен в определенных контекстах и может быть сгенерирован из SQL с использованием встроенных функций XMLElement, XMLAttributes, XMLAgg и т. Д. Если клиент не поддерживает XMLTYPE, его можно легко привести к значениям CLOB.
Возможно, самый простой, хотя и не самый лучший (IMO) вариант - использовать пакет dbms_xmlgen:
SQL> set serveroutput on size 1000;
SQL> exec dbms_output.put_line( dbms_xmlgen.getXML( 'select * from dual' ) );
Выход:
<?xml version="1.0"?>
<ROWSET>
<ROW>
<DUMMY>X</DUMMY>
</ROW>
</ROWSET>
Это дает вам ваши "таблицы" результатов в одном значении CLOB.