这是我的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--->
,我得到的结果不正确。