Uma atualização rápida, caso alguém queira melhorar o script do primeiro post.
Na verdade, é possível extrair todos os dados de uma só vez, aparentemente independentemente da quantidade de dados ![]()
(Eu testei isso sob pressão em uma tabela posts considerável com as colunas id e raw, e funcionou!)
Consulta de exemplo:
SELECT 'id'
|| string_agg(E'\n' || case when posts.id::text is null then '-1' else posts.id::text end
,''
ORDER BY posts.id asc) as value
FROM posts
Ao executá-la, ela imprimirá seu arquivo quase-csv como um único valor, ou seja, em uma única página. Você precisará então remover o " inicial e outro " no final, e ele se tornará um CSV útil:
Naturalmente, você pode adicionar mais dados a ele incluindo uma nova coluna para o arquivo CSV e novos dados para essa coluna:
SELECT 'id,newcolumn'
|| string_agg(E'\n' || case when posts.id::text is null then '-1' else posts.id::text end
|| string_agg(E'\n' || case when posts.newcolumn::text is null then '-1' else posts.newcolumn::text end
,''
ORDER BY posts.id asc) as value
FROM posts
Ao ser atualizado para suportar essa consulta, o Power BI não precisaria navegar por várias páginas, resultando em uma recuperação de dados mais rápida.
