使用 Golang 在 SQL Server 中保存 PDF 文件

我在使用 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 query

rows, err := db().Query(tsql)

这里的内容是 [ ] 字节。当我运行程序时,查询会执行,但出现以下错误:


mssql: '3�Ze�#��!~T��ϔljQ*����f1-~L����^ը;s;����.��)�[P�hjDN��J�.1� ��W��Zt����xq�\r����ן��)N����=df' 是无效名称,因为它包含 NULL 字符或无效的 unicode 字符。


谢谢!


qq_笑_17
浏览 157回答 1
1回答

慕容3067478

我通过将存储过程 exec 方法更改为 _, err := db().Exec(tsql, content) 并将 varbinary(max) 转换为 tmp = CAST(? as varbinary(max)); 来解决问题。
打开App,查看更多内容
随时随地看视频慕课网APP