"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo consultar datos con tipos de columnas desconocidos en el paquete SQL de Go?

¿Cómo puedo consultar datos con tipos de columnas desconocidos en el paquete SQL de Go?

Publicado el 2024-12-22
Navegar:878

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

Explorando consultas ad hoc en el paquete SQL de Go

Si bien la documentación sugiere que consultar datos en Go usando el paquete SQL requiere conocer el número de columnas y tipos en tiempo de compilación, esto no es estrictamente cierto. El tipo sql.Rows ofrece una solución para consultas SQL flexibles y ad hoc.

Recuperación dinámica de metadatos de columnas

El método Columnas en sql.Rows proporciona una lista de los nombres de columnas de resultados. Esto le permite determinar dinámicamente el número de columnas devueltas por una consulta arbitraria.

Escaneo de tipos de datos desconocidos

El método Scan admite el escaneo de valores de tipos desconocidos en un segmento de bytes sin formato (*[]byte) o un valor de interfaz{}. Esto le permite recuperar datos de columnas sin predefinir su tipo.

Trabajar con consultas ad hoc

Combinando estas técnicas, puede ejecutar consultas ad hoc y recuperar datos en una porción de valores de interfaz{}:

columnNames, err := rows.Columns()
if err != nil {
    // Handle error
}
columns := make([]interface{}, len(columnNames))
columnPointers := make([]interface{}, len(columnNames))
for i := 0; i 

Después de esto, el segmento de columnas contendrá los valores decodificados para todas las columnas en la fila de resultados. Al aprovechar los métodos de Columnas y Escaneo, puede manejar eficazmente consultas ad hoc en el paquete SQL de Go.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3