Mi codigo es:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
Devuelve los nombres de columna de la tabla aean
.
Ahora he declarado una matriz:
DECLARE colnames text[]
¿Cómo puedo almacenar la salida de select en la matriz colnames?
¿Es necesario inicializar colnames?
sql
arrays
postgresql
plpgsql
mitesh
fuente
fuente
array_agg(column_name, ',')
Respuestas:
Hay dos maneras. Uno es agregar:
SELECT array_agg(column_name::TEXT) FROM information.schema.columns WHERE table_name = 'aean'
El otro es usar un constructor de matriz:
SELECT ARRAY( SELECT column_name FROM information.schema.columns WHERE table_name = 'aean')
Supongo que esto es para plpgsql. En ese caso, puede asignarlo así:
colnames := ARRAY( SELECT column_name FROM information.schema.columns WHERE table_name='aean' );
fuente
DECLARE
una matriz comomy_array INTEGER[];
(o cualquiera que sea el tipo relevante). También puede usar la matriz en unaWHERE
cláusula de consulta comoWHERE values = ANY(my_array)
. LaANY
toma una matriz o un conjunto y comprobará la presencia en esa matriz / set, por lo que funciona de manera equivalente aIN ()
en un sentidoTuve exactamente el mismo problema. Solo una modificación de trabajo más de la solución dada por Denis (se debe especificar el tipo):
SELECT ARRAY( SELECT column_name::text FROM information_schema.columns WHERE table_name='aean' )
fuente