tengo problemas para realizar la inserccion de un array en postgresql
tengo la siguiente instruccion sql
Código SQL:
Ver original
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
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, rep_actividad INTEGER, obs_actividad text, id_cat INTEGER[] ) RETURNS INTEGER AS $$ DECLARE id_tabla BIGINT; BEGIN id_tabla := secuenciaa(); 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); FOR i IN 1..array_upper(id_cat,1) LOOP INSERT INTO subfenomenos VALUES (NEXTVAL('subfenomenos_id_sub_fenomeno_seq'),id_tabla,i); END LOOP; RETURN id_tabla; END; $$ LANGUAGE plpgsql;