una transponer registros multiple filas ejemplos consultas concatenar columns columnas columna 11g 10g sql oracle plsql

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.