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
902 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!

source:stackoverflow.com
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