【发布时间】:2019-09-25 11:39:45
【问题描述】:
我正在尝试从 SQL 获取数据到 excel,它给了我以下错误 我在 SQL Server 中的查询
DECLARE @Delimiter Char(1)
SET @Delimiter = CHAR(9)
EXEC MSDB.dbo.sp_Send_DBMail
@profile_name = 'K2MailSetup',
@Recipients='abs@test.com',
@Subject='Extraction Report',
@Body='Hi,
Please find attached extraction report as required. ',
@Query='set nocount on;Select Coalesce(replace(replace(A.[type], char(10), ''), char(13), ''),'') as Type FROM [EU_OTH_REG].[dbo].[TBL_EU_OTH_TXN_REG_RSDS] A',
@Attach_Query_Result_As_File = 1,
@Query_Result_Header = 1,
@Query_Attachment_Filename = 'Report.csv',
@Query_Result_Separator = @Delimiter,
@query_result_width =32767,
@query_result_no_padding=1
================================================ ==========================
它给了我以下错误
Msg 22050, Level 16, State 1, Line 0
Error formatting query, probably invalid parameters
Msg 14661, Level 16, State 1, Procedure sp_send_dbmail, Line 517
Query execution failed: Msg 105, Level 15, State 1, Server MYKULK2DB01Q\MSSQLSTG, Line 1
Unclosed quotation mark after the character string ') as Type
FROM [EU_OTH_REG].[dbo].[TBL_EU_OTH_TXN_REG_RSDS] A
'.
Msg 102, Level 15, State 1, Server MYKULK2DB01Q\MSSQLSTG, Line 1
Incorrect syntax near ') as Type
FROM [EU_OTH_REG].[dbo].[TBL_EU_OTH_TXN_REG_RSDS] A
================================================ ==========================
奇怪的是,当我只是运行查询时,它会为我提供结果,但是当我尝试使用上述 excel 步骤和参数从中创建报告时,它给了我错误。
【问题讨论】:
-
您的
@Query值中有一堆引号,您需要将它们转义。 -
当像这样调试动态时,您应该评估使用 print 生成的动态 sql。它将快速隔离语法错误。
标签: sql sql-server excel replace parameter-passing