SQL 에이전트 작업이 작동했지만 dbmail 쿼리에 새로운 왼쪽 조인을 추가 한 후 실패했습니다.sp_send_dbmail 오류 서식 지정
이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 SQLSRV, Line 34
실패 쿼리 실행 후 메시지 변경과 거짓 범인으로 단어의 중간에 위치를 선택하는 경향이있다 :이 오류는 내가 모두 몇 명 이상 본 적이 하나에 대한 대답을 갖고있는 것 같다입니다. 다음과 같이
쿼리는 다음과 같습니다
@Query = 'set nocount on
USE [Epicor10]
select
case when VoidOrder = 0 then "Not Void" else "Voided" end as ' + @Column1Name + ',
case when Approve = 0 then "NA" else "A" end as Approved,
case when poheader.Confirmed = 0 then "UC" else "C" end as Confirmed,
POHeader.PONum,
podetail.POLine,
pr.PORelNum,
TG.GLAccount,
convert(nvarchar,REPLACE(REPLACE(REPLACE(REPLACE(podetail.PartNum, CHAR(13), ""), CHAR(10), " "), CHAR(9), " "), ",", " ")) PartNum,
convert(nvarchar,REPLACE(REPLACE(REPLACE(REPLACE(podetail.LineDesc, CHAR(13), ""), CHAR(10), " "), CHAR(9), " "), ",", " ")) LineDesc,
OrderQty,
ISNULL(CONVERT(nVarChar(max), pr.DueDate, 121), NULL) RelDueDate,
ISNULL(CONVERT(nVarChar(max), PODetail.DueDate, 121), NULL) LineDueDate,
pr.ReceivedQty,
pr.RelQty,
(pr.RelQty - pr.ReceivedQty) BalanceDue,
EntryPerson,
ShipName,
BuyerID,
POHeader.VendorNum,
Vendor.VendorID,
convert(nvarchar(max),REPLACE(REPLACE(REPLACE(REPLACE(Vendor.Name, CHAR(13), ""), CHAR(10), " "), CHAR(9), " "), ",", "")) Name,
REPLACE(REPLACE(REPLACE(REPLACE(ISNULL(CONVERT(nVarChar(max),ApprovedDate, 121), NULL), CHAR(13), ""), CHAR(10), " "), CHAR(9), " "), ",", "") LineApprovedDate,
ISNULL(CONVERT(nVarChar(max),OrderDate, 121), NULL) OrderDate,
convert(nvarchar,REPLACE(REPLACE(REPLACE(case when ApprovedBy = "username" then "usersname" else ApprovedBy End, CHAR(13), ""), CHAR(10), " "), CHAR(9), " ")) ApprovedBy
from [Epicor10].[Erp].[POHeader]
inner join [Epicor10].[Erp].Vendor on POHeader.VendorNum = Vendor.VendorNum
left join [Epicor10].[Erp].PODetail on poheader.company = podetail.company and poheader.PONum = podetail.PONUM
left join [Epicor10].[Erp].PORel pr on PODetail.Company = pr.company and PODetail.ponum = pr.PONum and PODetail.poline = pr.POLine
left join [Epicor10].[Erp].TranGLC TG on TG.Key1 = pr.PONum and TG.Key2 = pr.POLine and TG.Key3 = pr.PORelNum and TG.RelatedToFile = "PORel"
where POHeader.OpenOrder = 1 and OrderDate >= "2016-7-1" and OpenLine = 1 and VoidLine = 0 and VoidRelease = 0 and OpenRelease = 1
order by PONum, POLine, PORelNum'
지금이 작동하고 나는 GLAccount 열을 추가하도록 요청 될 때까지 잘 보내고 있었다 TranGLC의 마지막 '왼쪽 가입은'문제에 대한 트리거입니다. 해당 조인을 다시 제거하면 작동하지만 문제가 무엇인지 파악할 수 없습니다.
에이전트에 대한 사용 권한을 확인했는데 (왜 테이블이 달라졌을지 상상할 수 없지만) 많은 중복 작업을 수행하여 데이터베이스와 스키마를 가리키고 있습니다. 쿼리를 복사하여 다른 창에서 독립 실행 형으로 실행하면 정상적으로 작동합니다. 내가 온라인에서 찾은 어떤 것도 문제를 찾아내는 데 도움이되지 못했습니다. 코멘트에 대한
업데이트 :
나는 쿼리없이 보낼 수 있나요? : 왼쪽이 TranGLC에 가입 추가 할 때까지 예, 심지어 쿼리와 이메일을 보낼 수 있습니다.
사용 권한 문제 : 나는 또한 온라인에서 일반적인 원인으로 많은 것을 보았습니다. 그것은 비록 경우 인 것처럼 보이지 않는다. 내가 볼 수있는이 테이블에 대한 특별한 권한이 없습니다. 데이터베이스의 나머지 테이블과 같은 설정> 스키마
작업 에이전트 사용자 : 여기서는 모든 항목의 설정/관계에 대해 다소 혼란스러워합니다. 저는 프로필 아래에서 sp를 실행하고 있습니다.이 프로필은 관리> 데이터베이스 메일에서 기본 인증을 사용하여 우리 도메인에 대해 전자 메일을 설정합니다. 이 이메일은 실제로 우리가 가지고있는 도메인 사용자를위한 이메일입니다. 활성 사용자 (나, 관리자이기 때문에)를 Windows 인증으로 설정하려고 할 수 있습니다.
SSAgent 내에서 작동하는 방식이 명확하지 않지만 SSAgent> 속성> 경고 시스템 (메일 프로필 사용 설정은 여기에서 확인하지 않음)에서 데이터베이스 메일을 설정하는 것이 대부분이지만 그 관계에 대해선 분명하지 않습니다. 나는 그것이 뭔가 다른 것을 위해있는 것처럼 느껴지고, 여기에서 중요하지 않아야한다.
저장된 프로 시저 전체를 감쌀 때 어떤 일이 발생합니까? – TheGameiswar
실행시 동일한 오류가 발생합니다. 나는 TVF에서 SQL을 포장하고 dbo.function()에서 select *로 쿼리를 설정하려고 시도했지만 실제로 작동했지만 아무런 포맷팅도 csv에서 적용되지 않았다. 따라서 읽을 수 없다. ( – BWoods