Explorando consultas ad hoc no pacote SQL do Go
Embora a documentação sugira que consultar dados no Go usando o pacote SQL requer saber a contagem de colunas e tipos em tempo de compilação, isso não é estritamente verdade. O tipo sql.Rows oferece uma solução para consultas SQL flexíveis e ad hoc.
Recuperação dinâmica de metadados de coluna
O método Columns em sql.Rows fornece uma lista dos nomes das colunas de resultados. Isso permite determinar dinamicamente o número de colunas retornadas por uma consulta arbitrária.
Verificação de tipos de dados desconhecidos
O método Scan suporta a verificação de valores de tipos desconhecidos em um fatia de bytes brutos (*[]byte) ou um valor de interface{}. Isso permite que você recupere dados de coluna sem pré-definir seu tipo.
Trabalhando com consultas ad hoc
Combinando essas técnicas, você pode executar consultas ad hoc e recuperar dados em uma fatia de valores{} de interface:
columnNames, err := rows.Columns()
if err != nil {
// Handle error
}
columns := make([]interface{}, len(columnNames))
columnPointers := make([]interface{}, len(columnNames))
for i := 0; i Depois disso, a fatia de colunas conterá os valores decodificados para todas as colunas na linha de resultados. Ao aproveitar os métodos Columns e Scan, você pode lidar com consultas ad hoc de maneira eficaz no pacote SQL do Go.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3