Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2012, 07:44
Montes28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
problemas para realizar la inserccion de un array en postgresql

hola amigos espero me puedan ayudar

tengo problemas para realizar la inserccion de un array en postgresql

tengo la siguiente instruccion sql

Código SQL:
Ver original
  1. SELECT inserciones(TO_DATE('2012-11-17','YYYY-MM-DD'),TO_DATE('2012-11-17','YYYY-MM-DD'),'22:32'::CHARACTER VARYING,'22:32'::CHARACTER VARYING,1::INTEGER,1::INTEGER,'ff'::CHARACTER VARYING,1::INTEGER,1::INTEGER,'1',array[725,749,766]::INTEGER[]);


este es el error que obtengo

ERROR: la columna «id_cat» es de tipo integer[] pero la expresión es de tipo integer
LINE 1: ...LUES (NEXTVAL('subfenomenos_id_sub_fenomeno_seq'), $1 , $2 )
^
HINT: Necesitará reescribir la expresión o aplicarle una conversión de tipo.
QUERY: INSERT INTO subfenomenos VALUES (NEXTVAL('subfenomenos_id_sub_fenomeno_seq'), $1 , $2 )
CONTEXT: PL/pgSQL function "inserciones" line 7 at sentencia SQL


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

ERROR: la columna «id_cat» es de tipo integer[] pero la expresión es de tipo integer
SQL state: 42804
Hint: Necesitará reescribir la expresión o aplicarle una conversión de tipo.
Context: PL/pgSQL function "inserciones" line 7 at sentencia SQL



y la funcion que tengo es esta

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION inserciones(fec_ini_actividad DATE,fec_fin_actividad DATE,hor_ini_actividad CHARACTER VARYING(30),hor_fin_actividad CHARACTER VARYING(30),fen_actividad INTEGER,vol_actividad INTEGER,ban_actividad CHARACTER VARYING(20),nba_actividad INTEGER,
  2.   rep_actividad INTEGER,
  3.   obs_actividad text,
  4.   id_cat INTEGER[]
  5. ) RETURNS INTEGER AS $$
  6. DECLARE
  7. id_tabla BIGINT;
  8. BEGIN
  9. id_tabla := secuenciaa();
  10. INSERT INTO actividad VALUES (id_tabla,fec_ini_actividad,fec_fin_actividad,hor_ini_actividad,hor_fin_actividad,fen_actividad,vol_actividad,ban_actividad,nba_actividad,rep_actividad,obs_actividad);
  11. FOR i IN 1..array_upper(id_cat,1) LOOP
  12. INSERT INTO subfenomenos VALUES (NEXTVAL('subfenomenos_id_sub_fenomeno_seq'),id_tabla,i);
  13. END LOOP;
  14. RETURN id_tabla;
  15. END;
  16. $$ LANGUAGE plpgsql;