Buen día foreros. Les cuento Tengo un procedimiento con un tipo de dato definido por mi. *CREATE TYPE ejemplo AS (campo1 double precision[],campo2 integer[]);* *Tengo un procedimiento que me retorna un array de este tipo y lo almaceno en una variable dentro de otro procedimiento.* *DECLARE* *variable1 ejemplo[];* *BEGIN* *variable1 := funcion_retorna_tipo_de_dato_ejemplo(campo1,campo2);* * * Quiero almacenar en una tabla temporal (creada con nombre aleatorio mientras dura la sesión) el valor de variable1. *EXECUTE 'CREATE TEMPORARY TABLE ' || nombre_aleatorio || '(campo1 text,campo2 ejemplo[])'; * * * *La tabla se crea bien.... pero cuando trato de hacer esto:* *EXECUTE 'INSERT INTO ' || nombre_aleatorio || ' VALUES(''t_1_2'',' || variable1 || ')';* Me genera error. este error se da por que el execute tiene como sentencia de ejecución un text y asi mismo me toma mi tipo de dato ejemplo[].
Si no tuviese que hacer el nombre de la tabla temporal dinamico sería tan sencillo como esto: *INSERT INTO tabla VALUES('t_1_2',variable1);* * * *Existe alguna forma de cambiar el formato de salida de un array? que no sea {{1,2},{3,4}} sino array[[1,2],[3,4]]?* *O en ultimas, poder hacer funcionar una sentencia EXECUTE que me tome la variable como el tipo de dato real?* * * *Espero me hayan entendido.* * * *Muchas gracias* * * -- Daniel Orozco Jaramillo Ing. Sistemas y Telecomunicaciones OCE (Oracle Certified SQL Expert)