Ahí va CREATE OR REPLACE FUNCTION fn_normalizardireccion(Var_lote VARCHAR) RETURNS void AS $$ DECLARE
BEGIN /*Insertar los datos de la tabla Direcciones_TMP hacia la tabla direcciones*/ INSERT INTO DIRECCIONES( DIRECCION, COMUNA, LOTE) SELECT DIRECCION ,COMUNA ,LOTE FROM DIRECCIONES_TMP WHERE LOTE = Var_lote; --SET client_encoding TO LATIN1; COPY ( SELECT DISTINCT DN.ID_DIRECCIONES ,DN.LOTE ,DN.DIRECCION_COPIA ,DN.CALLE ,DN.NUMERAL ,DN.RESTO ,DN.COMUNA ,CAST(MD.UTM_NORTE as numeric) AS UTM_NORTE ,CAST(MD.UTM_ESTE as numeric) AS UTM_NORTE FROM DIRECCIONESNORMALIZADA AS DN LEFT JOIN MaestroDirecciones AS MD ON DN.COMUNA=MD.COMUNA AND DN.CALLE=MD.CALLE AND DN.NUMERAL=MD.NUMERO WHERE LOTE = $1 ORDER BY DN.ID_DIRECCIONES ) TO '/home/user/Archivo.csv' WITH CSV HEADER; END; $$ LANGUAGE plpgsql; El 25 de febrero de 2016, 17:01, Anthony Sotolongo <asotolo...@gmail.com> escribió: > ese error significa "undefined_column". , puedes adjuntar el código de la > función? > > saludos > > > On 25/02/16 16:59, Cristobal Alexis Ibarra Gonzalez wrote: > > Probe ingresando y el error fue el mismo. > > WHERE DN.x3= *$1 *ORDER BY DN.X7 > > ********** Error ********** > > > SQL state: 42703 > > El 25 de febrero de 2016, 16:53, Anthony Sotolongo < > <asotolo...@gmail.com>asotolo...@gmail.com> escribió: > >> Hola Cristobal, que problema te da? error,cual?, no guarda en el CSV? has >> probado utilizar $N(N=numero del parámetro en la función) en vez del nombre >> de la variable >> >> >> Saludos >> >> On 25/02/16 16:42, Cristobal Alexis Ibarra Gonzalez wrote: >> >> Estimados, >> >> Buenas tardes, les escribo porque quisiera saber si me pueden ayudar con >> lo siguiente: >> >> He creado una función que a la cual se le entrega un parámetro de entrada >> de tipo Varchar. >> >> Al final de todo lo que realizo deseo pasar el resultado de una query a >> un archivo csv, cuando ejecuto la sentencia fuera de la función esta hace >> todo de manera perfecta, el problema que tengo sucede cuando va dentro de >> la función y principalmente creo que lo hace por la variable que estoy >> usando. >> >> SET client_encoding TO LATIN1; >> >> COPY ( >> SELECT DISTINCT >> DN.x1 >> ,DN.x2 >> ,DN.x3 >> ,DN.x4 >> ,DN.x5 >> ,DN.x6 >> ,DN.x7 >> ,CAST(MD.x8as numeric) AS x9 >> ,CAST(MD.x9as numeric) AS x9 >> FROM TABLA1 AS DN LEFT JOIN >> TABLA2 AS MD ON DN.COMUNA=MD.COMUNA AND DN.CALLE=MD.CALLE AND >> DN.NUMERAL=MD.NUMERO >> WHERE LOTE = Var_lote ORDER BY DN.ID_DIRECCIONES >> WHERE DN.x3= *Var_lote *ORDER BY DN.X7 >> >> Donde Var_lote es la variable que le entrego a la función para que esta >> se ejecute. Personalmente creo que el problema esta en el >> >> WHERE DN.x3= Var_lote ORDER BY DN.X7 >> >> Esto porque si yo agrego un string y saco la variable esta funciona >> adecuadamente en la función. WHERE DN.x3= 'ejemplo1234' ORDER BY DN.X7 >> >> -- >> Con respeto y cariño, >> >> >> Atentamente >> Cristóbal Ibarra González >> >> >> > > > -- > Con respeto, admiración y cariño, > > > Atentamente > Cristóbal Ibarra González > > > -- Con respeto, admiración y cariño, Atentamente Cristóbal Ibarra González