Oswaldo Hernández escribió: > El problema se presenta en una funcion que elimina una serie de > registros, pero, despues de eliminarlos aún necesito algunos datos de > esos registro que he borrado. Al ya están eliminados no puedo hacer un > select sobre ellos, y tampoco puedo procesar los datos antes de eliminar > los registros puesto que entre la eliminacion y el procesado de los datos > hay otra serie de operaciones que necesitan que estén en ese estado. > > Para solucionarlo habia pensado dos opciones: 1.- Guardar los datos que > necesito en una tabla temporal y despues hacer un for..loop sobre la > tabla temporal, y 2.- Cargarlos en un cursor y leer posteriormente los > datos del cursor.
No entiendo eso de cargar en un cursor. Ayer escribí un artículo en la lista sobre los cursores, échale un vistazo. Un cursor no es una especie de tabla temporal al que puedas pasarle tuplas y después leerlas de vuelta. Las tuplas necesitan estar almacenadas en alguna parte; el cursor no tiene almacenamiento propio. Supongo que debes usar una tabla temporal, aunque quizás sea posible hacer lo que quieres usando DELETE ... RETURNING. -- Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4 "Escucha y olvidarás; ve y recordarás; haz y entenderás" (Confucio) -- TIP 4: No hagas 'kill -9' a postmaster