Это моя таблица 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--->
я получаю неверные результаты.