Meu código é:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
Ele retorna os nomes das colunas da tabela aean
.
Agora eu declarei uma matriz:
DECLARE colnames text[]
Como posso armazenar a saída do select na matriz colnames.
Existe alguma necessidade de inicializar colnames?
sql
arrays
postgresql
plpgsql
mitesh
fonte
fonte
array_agg(column_name, ',')
Respostas:
Existem duas maneiras. Um é agregar:
SELECT array_agg(column_name::TEXT) FROM information.schema.columns WHERE table_name = 'aean'
A outra é usar um construtor de array:
SELECT ARRAY( SELECT column_name FROM information.schema.columns WHERE table_name = 'aean')
Presumo que seja para plpgsql. Nesse caso, você pode atribuí-lo assim:
colnames := ARRAY( SELECT column_name FROM information.schema.columns WHERE table_name='aean' );
fonte
DECLARE
um array comomy_array INTEGER[];
(ou qualquer que seja o tipo relevante). Você também pode usar a matriz em umaWHERE
cláusula de consulta comoWHERE values = ANY(my_array)
. OANY
pega uma matriz ou conjunto e verifica a presença nessa matriz / conjunto, de modo que funciona de forma equivalente a,IN ()
em certo sentidoEu tive exatamente o mesmo problema. Apenas mais uma modificação funcional da solução dada por Denis (o tipo deve ser especificado):
SELECT ARRAY( SELECT column_name::text FROM information_schema.columns WHERE table_name='aean' )
fonte