Maison  >  Article  >  développement back-end  >  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
PHPzavant
2024-02-12 15:15:07849parcourir

列索引 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()")

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"`
}

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

type BoolArray []*bool

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer