我被困在utf-8格式中了。我使用了使用UTF-8的CAST或CONVERT。即使我在查询字符串前面设置了字符N,但它仍然不起作用。
我的存储过程:
ALTER PROCEDURE [dbo].[SPC_SP_HSDXTChinh_BangSo4_Fake]
@idDuAn NUMERIC(18, 0),
@idGoiThau NUMERIC(18, 0),
@idDonVi INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @resultString NVARCHAR(MAX);
DECLARE @queryString NVARCHAR(MAX);
DECLARE @Str_TinhHopLe NVARCHAR(255), @Str_DanhGia NVARCHAR(255), @Str_XepHang NVARCHAR(255);
SET @Str_TinhHopLe = 'N''Kết quả đánh giá tính hợp lệ của HSĐXTC''';
SET @Str_DanhGia = 'N''Giá đánh giá''';
SET @Str_XepHang = 'N''Xếp hạng các HSDT''';
SELECT @resultString = COALESCE(@resultString + ',', '') + RES.TenNhaThau
FROM (
SELECT '[' + TenNhaThau + ']' AS TenNhaThau
FROM [SPC_fn_HSDXTChinh_NhaThau_CoTinhHopLe] (@idDuAn, @idGoiThau, @idDonVi)
) RES
--PRINT @resultString
PRINT @Str_TinhHopLe;
SET @queryString = '
SELECT *
FROM (
SELECT 1 AS STT,' + @Str_TinhHopLe + ' AS NoiDung,
CAST(RES.TenNhaThau AS NVARCHAR(255)) AS TenNhaThau,
CAST(RES.KetQuaDanhGia AS VARCHAR(25)) AS KetQuaDanhGia
FROM [SPC_fn_HSDXKThuat_BangSo4] (' + CAST(@idDuAn AS VARCHAR(20)) + ',' + CAST(@idGoiThau AS VARCHAR(20)) + ',' + CAST(@idDonVi AS VARCHAR(10)) + ') RES
) SRC
PIVOT(MAX(KetQuaDanhGia) FOR TenNhaThau IN (' + @resultString + ')) P
UNION ALL
SELECT *
FROM (
SELECT 2 AS STT
,' + @Str_DanhGia + ' AS NoiDung,
CAST(RES.TenNhaThau AS NVARCHAR(255)) AS TenNhaThau,
CAST(RES.GiaTri AS VARCHAR(25)) AS GiaTri
FROM [SPC_fn_HSDXKThuat_BangSo4] (' + CAST(@idDuAn AS VARCHAR(20)) + ',' + CAST(@idGoiThau AS VARCHAR(20)) + ',' + CAST(@idDonVi AS VARCHAR(10)) + ') RES
) SRC2
PIVOT(MAX(GiaTri) FOR TenNhaThau IN (' + @resultString + ')) P
UNION ALL
SELECT *
FROM (
SELECT 3 AS STT
,' + @Str_XepHang + ' AS NoiDung,
CAST(RES.TenNhaThau AS NVARCHAR(255)) AS TenNhaThau,
CAST(ROW_NUMBER() OVER(ORDER BY GiaTri) AS VARCHAR(25)) AS XepHang
FROM [SPC_fn_HSDXKThuat_BangSo4] (' + CAST(@idDuAn AS VARCHAR(20)) + ',' + CAST(@idGoiThau AS VARCHAR(20)) + ',' + CAST(@idDonVi AS VARCHAR(10)) + ') RES
) SRC2
PIVOT(MAX(XepHang) FOR TenNhaThau IN (' + @resultString + ')) P
';
PRINT @queryString;
EXEC (@queryString);
END运行后存储的输出消息的一部分:
SELECT
1 AS STT,
N'K?t qu? dánh giá tính h?p l? c?a HSÐXTC' AS NoiDung,
CAST(RES.TenNhaThau AS NVARCHAR(255)) AS TenNhaThau,
CAST(RES.KetQuaDanhGia AS VARCHAR(25)) AS KetQuaDanhGia
FROM
[SPC_fn_HSDXKThuat_BangSo4] (60006000000000166, 60006000000000347, 60006) RES您可以看到错误文本:N'K?t qu? dánh giá tính h?p l? c?a HSÐXTC'。
我想输出:Kết quả đánh giá tính hợp lệ của HSĐXTC
我该如何解决这个问题呢?
发布于 2018-04-20 17:17:00
在您的过程中更改以下行:
SET @Str_TinhHopLe = N'Kết quả đánh giá tính hợp lệ của HSĐXTC';
SET @Str_DanhGia = N'Giá đánh giá';
SET @Str_XepHang = N''Xếp hạng các HSDT';https://stackoverflow.com/questions/49937957
复制相似问题