Maison > développement back-end > Golang > Erreur d'analyse sur l'index de colonne 8, nom « répliqué » : analyse non prise en charge, stockage du pilote. Valeur de type uint8 en tant que type **bool

Erreur d'analyse sur l'index de colonne 8, nom « répliqué » : analyse non prise en charge, stockage du pilote. Valeur de type uint8 en tant que type **bool

PHPz
Libérer: 2024-02-12 15:15:07
avant
975 Les gens l'ont consulté

列索引 8 上的扫描错误,名称“replicated”:不支持扫描,将 driver.Value 类型 uint8 存储为 **bool 类型

Contenu de la question

J'utilise sqlx pour sélectionner PostgreSQL boolan[] dans une structure Golang, où la valeur de la structure cible est []*bool.

type App struct {
    ApplicationID string  `db:"application_id"`
    Name          string  `db:"name"`
    Description   string  `db:"description"`
    Replicated    []*bool `db:"replicated"`
}

var apps []App

err := trx.Select(&apps, "Select * From my_function()")
Copier après la connexion

L'erreur renvoyée est : sql: 列索引 3 上扫描错误,名称“replicated”: 不支持扫描,将 driver.Value 类型 []uint8 存储为类型 *[]*bool

J'ai regardé autour de moi mais je n'ai pas encore trouvé de solution. Toute aide serait grandement appréciée !

Solution de contournement

Vous ne pouvez analyser que le contenu qui implémente l'interface .Scanner. Vous pouvez définir la structure comme

import "github.com/lib/pq"

type App struct {
    ApplicationID string  `db:"application_id"`
    Name          string  `db:"name"`
    Description   string  `db:"description"`
    Replicated    pq.BoolArray `db:"replicated"`
}
Copier après la connexion

Dont pq.BoolArray[]bool,或者如果您确实需要它是 []*bool, vous pouvez créer vos propres types

type BoolArray []*bool
Copier après la connexion

Copiez ensuite le code à partir d'ici https://github. com/lib/pq/blob/2a217b94f5ccd3de31aec4152a541b9ff64bed05/array.go#L76 et modifiez si nécessaire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal