transponer - Devolver una ''tabla''(sin predefinir nombres de columna) de una función PL/SQL
pivot oracle columns to rows (1)
Para su información, mi pregunta se basa en este tutorial web http://www.adp-gmbh.ch/ora/plsql/coll/return_table.html
Como puede ver, la función devuelve una ''tabla'' y necesito crear un nuevo tipo de objeto que contenga los campos que se van a devolver. Mi pregunta es que no quiero predefinir el tipo de objeto porque quiero crear una función genérica que pueda generar cualquier tabla.
¡¡¿Alguna idea?!!
Sospecharía fuertemente que no quieres hacer esto. La creación dinámica de tipos de objetos y la creación de este tipo de flexibilidad en PL / SQL casi siempre es una receta para la ruina. Acabará escribiendo SQL dinámico extremadamente complicado en todas partes (tanto en las llamadas como en sus funciones) lo que hará que su código sea mucho más difícil de leer y depurar. Cuando su código se vuelve tan complejo, es mejor escribir marcos que generen el código, pero eso le deja con el problema mucho más difícil de escribir código que genere código que resuelva su problema en lugar de solo escribir código que resuelva su problema.
Dicho esto, si está verdaderamente, realmente determinado, es posible construir una función de tabla canalizada completamente genérica . Eso implica una magia profunda y profunda utilizando el marco de Oracle Data Cartridge. Es bastante genial. Pero la cantidad de personas que podrían apoyar y extender de manera realista este tipo de código es muy pequeña.
Con un poco menos de magia (pero aún mucho, mucho más de lo que sugeriría para prácticamente cualquier organización), puede crear una función de tabla interconectada flexible que dependa de tipos devueltos de una jerarquía de tipos predefinidos. Es más probable que sea compatible, pero asume que puede construir su jerarquía de tipos por adelantado.