Re: Pasar como parametros campo y tabla a SP

From: Felipe Araoz Ramos <faraoz(at)gmail(dot)com>
To: "Miguel Beltran R(dot)" <yourpadre(at)gmail(dot)com>
Cc: PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Pasar como parametros campo y tabla a SP
Date: 2013-08-15 14:23:15
Message-ID: CAM6fARxTDJL0w2u4z5FoSsZFgQ5FvFr1PuqOT2T7tQZVT6tPBQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Si la linea de la consulta la coloco asi;

qry := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
values ("'' || cd || ''","'' || ce || ''");'' ;

me graba la función, pero la ejecuto:

SELECT insert_dos3('fp','e_codi','e_raz1','02','MI PRUEBA 4')

Y me sale este nuevo error.

ERROR: no existe la columna «02»
LINE 1: insert into fp ( e_codi,e_raz1) values ("02","MI PRUEBA 4");
^
QUERY: insert into fp ( e_codi,e_raz1) values ("02","MI PRUEBA 4");
CONTEXT: PL/pgSQL function "insert_dos3" line 10 at sentencia EXECUTE

********** Error **********

ERROR: no existe la columna «02»
Estado SQL:42703
Contexto:PL/pgSQL function "insert_dos3" line 10 at sentencia EXECUTE

El 15 de agosto de 2013 09:04, Felipe Araoz Ramos <faraoz(at)gmail(dot)com>escribió:

> Gracias Miguel por responder
>
> Ahora al cambiar la función, me sale ahora este error.
>
> ERROR: error de sintaxis en o cerca de «||»
> LINE 12: ...|| '' ( '' || ca || '','' || cb || '') values ("' || cd || '...
> ^
>
> ********** Error **********
>
> ERROR: error de sintaxis en o cerca de «||»
> Estado SQL:42601
> Caracter: 336
>
> Alguna otra idea.
>
> Gracias
>
>
>
> El 15 de agosto de 2013 00:43, Miguel Beltran R. <yourpadre(at)gmail(dot)com>escribió:
>
> Claramente dice el error. estas intentando insertar la cadena "MI
>> PRUEBA4", pero tu no estas poniendo las comillas simples a los lados dentro
>> de la función
>>
>> prueba
>> qry := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
>> values ('' || cd || '',"' || ce || '");'' ;
>>
>>
>> El 14 de agosto de 2013 21:05, Felipe Araoz Ramos<faraoz(at)gmail(dot)com>escribió:
>>
>> Amigos de la lista
>>>
>>> Estoy tratando de pasar el nombre de la tabla y el n ombre de los campos
>>> en un SP, pero tengo problemas al ejecutarlo.
>>>
>>> CREATE OR REPLACE FUNCTION insert_dos3(character varying, character
>>> varying, character varying, text, text)
>>> RETURNS void
>>> as '
>>> DECLARE
>>> qry text;
>>> tt alias for $1;
>>> ca alias for $2;
>>> cb alias for $3;
>>> cd alias for $4;
>>> ce alias for $5;
>>> begin
>>> qry := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
>>> values ('' || cd || '','' || ce || '');'' ;
>>> EXECUTE qry;
>>> RETURN;
>>> END;
>>> ' language 'plpgsql';
>>>
>>>
>>> Ejecuto de esta manera
>>>
>>> SELECT insert_dos3('fp','e_codi','e_raz1','03','MI PRUEBA4')
>>>
>>> *El error que me sale es el siguiente;*
>>> *ERROR: error de sintaxis en o cerca de «PRUEBA4»*
>>> *LINE 1: insert into fp ( e_codi,e_raz1) values (03,MI PRUEBA4);*
>>> * ^*
>>> *QUERY: insert into fp ( e_codi,e_raz1) values (03,MI PRUEBA4);*
>>> *CONTEXT: PL/pgSQL function "insert_dos3" line 10 at sentencia EXECUTE*
>>> *
>>> *
>>> *********** Error ***********
>>> *
>>> *
>>> *ERROR: error de sintaxis en o cerca de «PRUEBA4»*
>>> *Estado SQL:42601*
>>> *Contexto:PL/pgSQL function "insert_dos3" line 10 at sentencia EXECUTE*
>>>
>>> Los datos para el regiostro no pasan con comillas, su ayuda
>>>
>>> Gracias
>>>
>>> *Felipe *
>>>
>>
>>
>>
>> --
>> ________________________________________
>> Lo bueno de vivir un dia mas
>> es saber que nos queda un dia menos de vida
>>
>
>
>
> --
> *Felipe Araoz Ramos*
> RPM #941990605 / 941990605
> RPC 992760385
> NXT 822*9500 / 998229500
>

--
*Felipe Araoz Ramos*
RPM #941990605 / 941990605
RPC 992760385
NXT 822*9500 / 998229500

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Angel Hernandez Moreno 2013-08-15 15:21:02 Re: Consulta de un valor en varios campos
Previous Message Felipe Araoz Ramos 2013-08-15 14:04:48 Re: Pasar como parametros campo y tabla a SP