Re: Pasar como parametros campo y tabla a SP

From: "Miguel Beltran R(dot)" <yourpadre(at)gmail(dot)com>
To: Felipe Araoz Ramos <faraoz(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 20:44:19
Message-ID: CAEc04cps2ESpOLFEYL_dw2z2sZBOsXFGkEtKZ9_Sex4R3_C9Gw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Lo que pasa es que pusiste el valor entre comillas dobles y el sistema lo
interpreta que asi se llama la columna "02".

Me equivoque con lo que te pase antes, el problema de poner muchas comillas
simples jeje.

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

No tengo un postgresql a la mano para probar, pero lo que se busca es que
la cadena quede asi:
insert into fp ( e_codi,e_raz1) values (02, 'MI PRUEBA 4' );

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

> 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
>

--
________________________________________
Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ing. Esneiker Enriquez Cabrera 2013-08-16 15:44:59 ejecutar script automático en postgres
Previous Message Miguel Angel Hernandez Moreno 2013-08-15 18:03:14 Re: Consulta de un valor en varios campos