Преобразование типа $ 2 аргумента Exec: недопустимый символ "b", ищущий начало значения - PullRequest
0 голосов
/ 07 мая 2018

У меня есть ошибка, когда я пытаюсь обновить поле в JSONB любой буквой, но если я обновляю поле с номерами, оно отлично работает.sql: преобразование аргумента Exec $ 2 тип: недопустимый символ 'b', ищущий начало значения.Пример типа вставки: params["imei_json"] = types.JSONText(params["imei"].(string))

//Update User Information
func (metadata *accountPhoneNumberMetadata) UpdateUserInfo(params map[string]interface{}) error {

    params["imei_json"] = types.JSONText(params["imei"].(string))
    params["device_unique_id_json"] = types.JSONText(params["device_unique_id"].(string))

    tx := metadata.client.MustBegin()

    if _, err := tx.NamedExec(metadata.sqlMetadataUpdate(), params); err != nil {
        tx.Rollback()
        return err
    }

    if _, err := tx.NamedExec(metadata.sqlPhoneNumbers(), params); err != nil {
        tx.Rollback()
        return err
    }

    if _, err := tx.NamedExec(metadata.sqlUpdateRegistrationMetadata(), params); err != nil {
        tx.Rollback()
        return err
    }

    if err := tx.Commit(); err != nil {
        tx.Rollback()
        return err
    }
    return nil
}
func (metadata *accountPhoneNumberMetadata) sqlUpdateRegistrationMetadata() string {
    return `UPDATE registrations.metadata
             SET 
                metadata = 
                    jsonb_set(jsonb_set(metadata, '{react_native_imei, device_imei}', :imei_json),
                    '{react_native_device_info, device_unique_id}', :device_unique_id_json )
             WHERE 
                metadata_id = (SELECT metadata_id FROM registrations.metadata WHERE registration_id = :registration_id               LIMIT 1)`
}

1 Ответ

0 голосов
/ 07 мая 2018

Я так решил, просто добавьте цитаты.JSON требует двойных кавычек для всех строк

params["imei_json"] = types.JSONText(`"` + params["imei"].(string) + `"`)
params["device_unique_id_json"] = types.JSONText(`"` + params["device_unique_id"].(string) + `"`)
...