func (rs * Rows) Сканирование для обработки типа столбца строки массива - PullRequest
0 голосов
/ 18 марта 2019

У меня есть столбец в моей базе данных Postgres для тегов, который представляет собой массив строк.

Я определил его в структуре в моем golang как:

type device struct {
    deviceID   string
    macAddress sql.NullString
    name       sql.NullString
    agentID    sql.NullString
    groupType  sql.NullString
    tags       []string

    normalized           bool
    normalizedName       string
    normalizedMacAddress string
}

Когда я запускаюсканирование строк как таковое:

            err = rows.Scan(&d.deviceID, &d.name, &d.tags, &d.macAddress, &d.agentID, &d.groupType)
        if err != nil {
            return nil, err
        }

Возвращает следующую ошибку:

"sql: Scan error on column index 2, name "tags": unsupported Scan...+55 more"

Так какой тип оболочки мне нужен для массива строк, чтобы он был приемлемымтип

1 Ответ

4 голосов
/ 18 марта 2019

Использовать pq.Array при сканировании массива:

    err = rows.Scan(&d.deviceID, &d.name, pq.Array(&d.tags), &d.macAddress, &d.agentID, &d.groupType)
    if err != nil {
        return nil, err
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...