gpt4 book ai didi

sql-server - Go 无法从 MS SQL 2014 中读取最后一个 nvarchar(max) 值

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:15 26 4
gpt4 key购买 nike

我有以下查询:

SELECT ... ,
grade as [grade],
grade as [grade2]
FROM dbo.[qc_runs] r

JOIN ...
WHERE ...

我将它从我的 Go 代码发送到 MS SQL Server 2014 并想取回数据(我正在使用 github.com/denisenkom/go-mssqldb 驱动程序)。但是,我可以读取第一个 grade 值(类型 nvarchar(max)),但第二个是空的!这些是相同的表字段,只是重复了。 如果我从查询中删除一年级值并只留下一个,它仍然会空着!该列描述如下:

[grade] [nvarchar](max) NULL,

SQL Management Studio 可以很好地执行此查询,两个 grade 值都不为空,但 Go 代码不会!

更新 #1去代码:

evaluations, err := db.Query("EXEC qa.dbo.sp_get_evaluation_list ?", uid)
if err != nil {
if err == sql.ErrNoRows {
return list, nil
}
return list, err
}

// Get column names
colNames, err := evaluations.Columns()
if err != nil {
log.Logf("Failed to get columns: %v", err)
return list, err
}

// Result is your slice string.
readCols := make([]interface{}, len(colNames))

// Read data
for evaluations.Next() {

writeCols := make([]string, len(colNames))
for i := range writeCols {
readCols[i] = &writeCols[i]
}

evaluations.Scan(readCols...)

for i := range writeCols {
fmt.Println(colNames[i], ": ", writeCols[i])
}
...
}

输出:

...
grade : <some text from DB>
grade2 :

最佳答案

我不是围棋程序员。但是您需要以不同的方式命名这些字段。您的代码如何区分第一个和第二个 [grade]

SELECT ... ,
grade as [grade],
grade as [grade2]
FROM dbo.[qc_runs] r

JOIN ...
WHERE ...

鉴于您在第二次读取时得到一个空值,我怀疑 go 驱动程序(以及您从中使用的数据读取器)只是单向

关于sql-server - Go 无法从 MS SQL 2014 中读取最后一个 nvarchar(max) 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51799025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com