Ich verwende SQLX, um PostgreSQL boolan[] in eine Golang-Struktur auszuwählen, wobei der Zielstrukturwert []*bool ist.
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()")
Der zurückgegebene Fehler ist: sql: 列索引 3 上扫描错误,名称“replicated”: 不支持扫描,将 driver.Value 类型 []uint8 存储为类型 *[]*bool
Ich habe mich umgesehen, aber noch keine Lösung gefunden. Jede Hilfe wäre sehr dankbar!
Sie können nur Inhalte scannen, die die .Scanner
-Schnittstelle implementieren. Sie können die Struktur als
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"` }
Davon pq.BoolArray
是 []bool
,或者如果您确实需要它是 []*bool
können Sie Ihre eigenen Typen erstellen
type BoolArray []*bool
Dann kopieren Sie den Code von hier https://github. com/lib/pq/blob/2a217b94f5ccd3de31aec4152a541b9ff64bed05/array.go#L76 und ändern Sie sie nach Bedarf
Das obige ist der detaillierte Inhalt vonScanfehler bei Spaltenindex 8, Name „repliziert': Scan wird nicht unterstützt, Treiber wird gespeichert. Wert vom Typ uint8 als Typ **bool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!