Как передать параметр даты в операторе openquery
У меня одна процедура
Create procedure [dbo].[daily_stats]
@date datetime, @grouping varchar(150)
as
select callid,campaignid,dnis,anidigits,callstarttime,totalcalltime,agenttalktime,agentid,abandon,queuewaittime,calltype,call_acw,datestamp,bill_flag,
queueid,queuename,calldelayed, callholdtime, shortcall,ctr_name,role_name,team_name,callhold_times,agent_fullname,xferto,timeafterxfer,
obcallids,obcalls,obtime,orgname, getdate() as ImportedDate
into #tempid7
from openquery(orapr2, 'select * from sp_calldetail
where trunc(callstarttime) >= trunc(sysdate-1) and abandon in (0,1) and (upper(campaignid) in (''SYNAPSE'', ''SYNAPSECALLBACK'') or campaignid like ''ME%'')')
Я хочу пройти @date
значение в trunc(sysdate-1)
, Как я могу это сделать?
2 ответа
Я обнаружил, что должен был преобразовать дату и время в формат Oracle - например:
TO_DATE(''''' + CONVERT(varchar(10), @From, 120) + ''''',''''YYYY-MM-DD'''')
В противном случае он вернул ошибку - Неверный месяц
как передать параметр даты в операторе openquery
Вместо того, чтобы использовать openquery
функция, которую вы могли бы попробовать это решение
EXEC LINKEDSVR_BUH_03.TestUPSERT.dbo.Customer_Select @pCustomerID = 2
EXEC LINKEDSVR_BUH_03..dbo.Customer_Select @pCustomerID = 2 -- It uses default database (see Catalog property for linked server)
или это
EXEC (N'TestUPSERT.dbo.Customer_Select ?', 2) AT LINKEDSVR_BUH_03
EXEC (N'dbo.Customer_Select ?', 2) AT LINKEDSVR_BUH_03 -- It uses default database (see Catalog property for linked server)
^----- parameter placeholder
^----- parameter value