Trying to make a generic PL/SQL procedure to export data in specific XML format, e.g. Excel XML. Let’s say the procedure accepts a string with the SELECT query to EXECUTE IMMEDIATE.
This requires access to data types of each column of the resulting rowset, which — seeing as the procedure is to be generic — is only known after the query is run.
I have tried an approach with a temporary table, but for the procedure to compile the table must exist and have its structure known at compile time.
How can I next process the rows and columns of an EXECUTE IMMEDIATE result in a double loop that analyzes the type of each value and emits an appropriate piece of XML?
You can’t do that with EXECUTE IMMEDIATE. You’ll have to use the more powerful (and more complex) DBMS_SQL package – I’ve linked you to the DESCRIBE_COLUMNS procedure, which is especially relevant.