Bueno, lo solucione de la siguiente manera:
--Declaro la variableDECLARE txt_vista text;
--Elimino la vistaDROP VIEW IF EXISTS vw_menu_lista_detalle;--Elimino la tabla 
generada por la funcion pivotmytableDROP TABLE IF EXISTS tb_x_permiso_tmp;
--Ejecuto la funcion para crear la tablaPERFORM 
pivotmytable('tb_x_permiso','tb_x_permiso_tmp','idmenu','id','id','count',FALSE,'asc',FALSE);
--Asigno la instruccion SQL a la variabletxt_vista := 'CREATE VIEW 
vw_menu_lista_detalle AS SELECT vw_menu_lista.*, tb_x_permiso_tmp.* FROM 
vw_menu_lista LEFT OUTER JOIN tb_x_permiso_tmp ON ( vw_menu_lista.id = 
tb_x_permiso_tmp.idmenu ) ORDER BY key, orden';
--Ejecuto el contenido de la variableEXECUTE txt_vista;
Un detalle: al momento de ejecutar la función tuve que poner todos los 
parámetros, si no los pongo me aparece el mensaje "la función no existe".
Gracias Jorge por tu ayuda. Tu aporte me fue de mucha utilidad.Saludos.
Bach. Ing. de Sistemas Pedro Ricardo Pejerrey 
Gómez------------------------------------------------------------------------Área
 de TI en Provias Nacional - Zonal Piura - TumbesAnalista Programador && 
DBAFreeLancer MVC


Date: Tue, 18 Mar 2014 23:03:48 +0100
Subject: Re: [pgsql-es-ayuda] Crosstab
From: [email protected]
To: [email protected]

¡Madre mía! Lo que dices me suena... como a chino... es que yo no tengo un 
nivel demasiado allá de postgres... ¿podrías poner tu solución en la lista?
De momento, he actualizado la función y, al menos, puedes crear vistas 
directamente en lugar de tablas. De esta manera, al menos la tabla cruzada se 
actualiza al modificar la original

Un saludo
JOrge Tornero




El 18 de marzo de 2014, 17:52, Pedro PG <[email protected]> escribió:




Hola Jorge, gracias por tu respuesta, al final solucione mi problema poniendo 
la vista en una variable text y ejecutandolo posteriormente con un EXECUTE.
En fin  ... gracias por tu aporte, esta muy buena tu función, seguramente me 
estaré contactando contigo luego.

Gracias nuevamente y saludos.

Bach. Ing. de Sistemas Pedro Ricardo Pejerrey 
Gómez------------------------------------------------------------------------
Área de TI en Provias Nacional - Zonal Piura - TumbesAnalista Programador && 
DBAFreeLancer MVC



Date: Tue, 18 Mar 2014 17:12:48 +0100
Subject: Re: [pgsql-es-ayuda] Crosstab
From: [email protected]

To: [email protected]; [email protected]

Hola, Pedro:


Voy a probar a añadir un parámetro a la función, por ejemplo as_view que sea un 
booleano que, mediante un if..., si está a true la función haga un create view 
en lugar del create table que está al final de la función (linea 232 del código 
fuente)

No sé si funcionaría y te serviría... ya veremos, seguimos en contacto

 ( Y si alguien se anima a probar, mejor... sobre todo los que saben bien de 
esto)

Saludos para todos
 Jorge Tornero

Pedro PG <[email protected]> wrote:


Hola Jorge, gracias por el aporte me es de gran utilidad, hay un detalle ... la 
funcion pivotmytable la he colocado en un trigger, el problema es que la tabla 
resultante (generada por la funcion pivotmytable) la uso en una vista .... 

Como puedo hacer para que la función vacíe la tabla en el caso exista e inserte 
los nuevos registros ... he intentado colocar un DROP TABLE antes de ejecutar 
pivotmytable pero como la tabla resultante es usada en un VIEW no lo permite 
... 

Gracias.
Hola, Pedro,

pues directamente creo que no, aunque hay soluciones por ahí. Yo, hace 
tiempo, posteé en la lista una solución mía. Lo malo/bueno es que 
necesita de plpython instalado para funcionar, y bajo mi punto de vista 
(yo uso postgresql como una suerte de access bien hecho, es decir, 
servidor local para uso propio) funciona de maravilla, pero quizá un 
experto de la lista podría dar su opinión sobre su uso en entornos 
"reales" (servidores de bases de datos de verdad, vamos)



El código de la función se encuentra en:

https://github.com/jtornero/pivotmytable

Y unas instrucciones de uso razonables las puedes encontrar en:

http://imasdemase.com/en/programacion-2/tablas-cruzadas-en-postgresql-pivotmytable/

Recibe un cordial saludo
Bach. Ing. de Sistemas Pedro Ricardo Pejerrey 
Gómez------------------------------------------------------------------------
Área de TI en Provias Nacional - Zonal Piura - TumbesAnalista Programador && 
DBAFreeLancer MVC

                                                                                
  

                                          

Responder a