При загрузке данных из БД Oracle, значения столбцов приходят в качестве подстроки - PullRequest
1 голос
/ 10 мая 2019

Это моя таблица Oracle:

Table Name: Employee
----------------------
Emp_Id    Emp_Name

12345     Sussane

54321     Alex

Следующий запрос SELECT получает правильные результаты в SQL Developer:

SELECT Emp_Id,Emp_Name from Employee;

И результат этого запроса:

12345     Sussane

54321     Alex

Но когда я загружаю эту таблицу с помощью GoLang, иногда (не всегда) я получаю результаты, как показано ниже:

Прогон 1:

1     Sussane

5     Alex

Прогон 2:

12     Sussane

54     Alex

Мой код:

    rows, dbQueryErr:= db.QueryContext(ctx,"SELECT Emp_Id,Emp_Name from Employee")
    if dbQueryErr != nil{
            return nil,dbQueryErr
    }
    defer rows.Close()
    cols, readColErr := rows.Columns()
    if readColErr!= nil{
            rows.Close()
            return nil,readColErr
    }

    for rows.Next() {

            columns := make([]interface{}, len(cols))
            columnPointers := make([]interface{}, len(cols))
            for i, _ := range columns {
                    columnPointers[i] =&columns[i]
            }

            if err := rows.Scan(columnPointers...); err != nil {
                    logger.Println("Main Data Query Scan Err:", err)
                    return nil, err
            }
            m := make(map[string]interface{})
            for i, colname := range cols {
                    val := columnPointers[i].(*interface{})
                    m[colname] = *val
            }
                            var sKeys string=keyColumns[0]
            mapString := make(map[string]string)
            for key,value := range m{
                    strKey := fmt.Sprintf("%v", key)
                    strValue := fmt.Sprintf("%v", value)
                    mapString[strKey] = strValue
            }
            fmt.Println("m--->", m)
    }

Примечание: на m---> я получаю неверные результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...