Funciones en PostgreSql
Publicado por Orison (1 intervención) el 29/06/2006 23:49:18
La consulta es esta. Estoy tratando de hacer una funcion en que me permita recorrer los registros de una tabla y que en cada registro desde el primero me coloque en el id un numero 1 y asi sucesivamente 1,2,3,4,5... hasta el final de registros que contenga la tabla, osea enumerar los datos que existen en la tabla, construi esta funcion pero tengo problemas.
*/////////////////////////////////////////////////////////////////////////////////
DECLARE
CONTADOR int4;
registro_visit RECORD;
BEGIN
CONTADOR:=1;
/*PERFORM cs_log('Enumarando los datos...');*/
FOR registro_visit IN SELECT * FROM tbl_visitante LOOP
EXECUTE 'UPDATE ' || registro_visit || 'SET ' || registro_visit.id_visi=CONTADOR;
CONTADOR:=CONTADOR+1;
END LOOP;
/*PERFORM cs_log('Hecho.');*/
RETURN 1;
END;
*//////////////////////////////////////////////////////////////////////////////
Cual podra ser el problema ?, espero que me puedan ayudar,
El error es:
ERROR: could not find array type for data type record
CONTEXT: SQL statement "SELECT 'UPDATE ' || $1 || 'SET ' || $2 = $3 "
PL/pgSQL function "enumera" line 12 at execute statement
Gracias a todos
Orison
*/////////////////////////////////////////////////////////////////////////////////
DECLARE
CONTADOR int4;
registro_visit RECORD;
BEGIN
CONTADOR:=1;
/*PERFORM cs_log('Enumarando los datos...');*/
FOR registro_visit IN SELECT * FROM tbl_visitante LOOP
EXECUTE 'UPDATE ' || registro_visit || 'SET ' || registro_visit.id_visi=CONTADOR;
CONTADOR:=CONTADOR+1;
END LOOP;
/*PERFORM cs_log('Hecho.');*/
RETURN 1;
END;
*//////////////////////////////////////////////////////////////////////////////
Cual podra ser el problema ?, espero que me puedan ayudar,
El error es:
ERROR: could not find array type for data type record
CONTEXT: SQL statement "SELECT 'UPDATE ' || $1 || 'SET ' || $2 = $3 "
PL/pgSQL function "enumera" line 12 at execute statement
Gracias a todos
Orison
Valora esta pregunta


0