"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso consultar dados com tipos de colunas desconhecidos no pacote SQL do Go?

Como posso consultar dados com tipos de colunas desconhecidos no pacote SQL do Go?

Publicado em 2024-12-22
Navegar:254

How Can I Query Data With Unknown Column Types in Go\'s SQL Package?

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.

Tutorial mais recente Mais>

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