我在使用 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��ϔljQ*����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 关注
- 155 浏览
添加回答
举报
0/150
提交
取消