From 3aac5860cb0177fb88151f3609f3174af36bd372 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 28 Jul 2021 22:02:16 +0800 Subject: [PATCH] Only mssql needs the conversion --- internal/statements/statement.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/statements/statement.go b/internal/statements/statement.go index 93c56beb..a8bf8ba0 100644 --- a/internal/statements/statement.go +++ b/internal/statements/statement.go @@ -974,7 +974,14 @@ func (statement *Statement) convertSQLOrArgs(sqlOrArgs ...interface{}) (string, return "", nil, err } if r != nil { - newArgs = append(newArgs, string(r)) + // for nvarchar column on mssql, bytes have to be converted as ucs-2 external of driver + // for binary column, a string will be converted as bytes directly. So we have to + // convert bytes as string + if statement.dialect.URI().DBType == schemas.MSSQL { + newArgs = append(newArgs, string(r)) + } else { + newArgs = append(newArgs, r) + } } else { newArgs = append(newArgs, nil) }