我在使用 Golang 中的存儲過程將 PDF 文件保存在 SQL Server 數據庫中時遇到問題。下面是代碼。tsql := fmt.Sprintf("DECLARE @tmp varbinary(max);"+ "SET @tmp = CAST('%s' as varbinary(max));"+ "EXEC BP_AddCorrespondenceIn @PatientID=1, @ContactName='Test', @Subject='First Test',"+ "@Category='Report', @DocType='PDF', @Content = @tmp", content)// Execute queryrows, err := db().Query(tsql)這里的內容是 [ ] 字節。當我運行程序時,查詢會執行,但出現以下錯誤:mssql: '3?Ze?#??!~T????Q*????f1-~L????^?;s;????.??)?[P?hjDN??J?.1? ??W??Zt????xq?\r???????)N????=df' 是無效名稱,因為它包含 NULL 字符或無效的 unicode 字符。謝謝!
1 回答

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
我通過將存儲過程 exec 方法更改為 _, err := db().Exec(tsql, content) 并將 varbinary(max) 轉換為 tmp = CAST(? as varbinary(max)); 來解決問題。
- 1 回答
- 0 關注
- 216 瀏覽
添加回答
舉報
0/150
提交
取消