From: | Jorge Tornero - Listas <jtorlistas(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Guardado de archivos y funciones |
Date: | 2013-09-27 12:26:18 |
Message-ID: | 5245796A.4090004@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos,
Una de las "latas" que tengo que sufrir a diario es exportar datos desde
mis bases de datos y luego importarlos en excel/libreoffice. Esto no es
demasiado problemático pues la exportación de csv es muy transparente.
Pero he querido dar un paso más allá y hacerme algo que exporte
directamente a excel.
De manera que me he cogido mis conocimientos de python y me he liado con
plpythonu para crear la siguiente función:
DROP FUNCTION IF EXISTS exportax(varchar,varchar);
CREATE FUNCTION exportax(tabla varchar,filename varchar) RETURNS void
AS
$BODY$
import pandas as pd
import os
queryText=('select * from %s' %args[0])
ejecucion = plpy.execute(queryText)
tabla=[]
for fil in ejecucion:
tabla+=[fil]
df=pd.DataFrame(tabla)
df.to_excel(filename,index=False,encoding='utf8')
os.chmod(filename,0o666)
plpy.notice('Se grabaron %s filas en el archivo %s'
%(ejecucion.nrows(),filename))
$BODY$
LANGUAGE plpythonu;
Ahora bien, observaréis el comand os.chmod casi al final del script. Eso
lo hago (¿es una trampa?) para que luego el archivo resultante pueda ser
leído por cualquier usuario (pasa igual que con los problemas de
permisos del comando COPY del servidor), ahora bien... *lo que no
consigo es guardar el archivo en una carpeta cualquiera, pues da
problemas de permisos. ¿Alguna idea para resolver esto?* (aparte de
crear una carpeta en /home y darle permisos de escritura al usuario
postgres)
Otra cosa pendiente es que el orden de los campos se pierde... pero como
primera aproximación no está mal...
Un saludo
Jorge Tornero
From | Date | Subject | |
---|---|---|---|
Next Message | Gilberto Castillo | 2013-09-27 13:04:42 | Re: [pgsql-es-ayuda] buenas practicas de programación |
Previous Message | jvenegasperu . | 2013-09-27 01:02:56 | Re: Auxilio Ejecuto consulta y el servicio se apaga adjunto detalle |