como parametros campo y tabla a SP
Publicado por PHILL29ES (1 intervención) el 15/08/2013 06:36:44
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 registro no pasan con comillas, su ayuda
Gracias
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 registro no pasan con comillas, su ayuda
Gracias
Valora esta pregunta


0