Функция замены требует 3 аргумента - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь получить данные из SQL, чтобы преуспеть, и это дает мне следующую ошибку My Query in 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, это дает мне ошибку.

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вам необходимо проверить цитату в переменной @ Query .Я заменил это в следующем; @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'

0 голосов
/ 25 сентября 2019

Из документов: SQL Server Replace

Синтаксис REPLACE () выглядит следующим образом:

REPLACE ( string_expression , string_pattern , string_replacement ) 

Как видите, все параметры должны бытьв строковом формате.Убедитесь, что все параметры заключены в '', чтобы ваш скрипт работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...