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

Responder a