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