如何在存储过程中的打开查询中添加变量

How to add a variable in the open query in a stored procedure

我有一个接收商店 ID 参数的存储过程。我需要将该变量添加到 openquery tsql 脚本中,我无法做到这一点。在我的代码中查看 @var 那就是变量需要工作的地方

我试图引用这个 https://support.microsoft.com/en-us/help/314520/how-to-pass-a-variable-to-a-linked-server-query 但我无法让它工作

SELECT x.*
FROM (
    SELECT tl.title_log_sts_cd
        ,tl.ro_vin
        ,tl.ro_store_id
        ,ll.CurrentLoanStatus
        ,bc.vin
        ,bc.BorrowerId
        ,ll.DisplayLoanNumber
        ,CONVERT(DATE, CONVERT(VARCHAR(10), ll.CreateDateKey, 7)) LoanDate
        ,CONCAT (
            bb.LastName
            ,','
            ,bb.FirstName
            ) CustomerName
        ,ll.CurrentPrincipalBalanceAmt + ll.CurrentFeeBalanceAmt TotalDue
    FROM OPENQUERY(TLXPRD, 'SELECT * FROM TITLE_LOG 
 WHERE title_log_sts_cd in (''Ready to Send to DMV'', ''Sent to DMV'') 
 and ro_store_id =@VAR ') AS tl
    JOIN EIS.Borrower.Collateral bc WITH (NOLOCK) ON tl.ro_vin = bc.Vin
    LEFT JOIN eis.loan.loan ll WITH (NOLOCK) ON ll.BorrowerId = bc.BorrowerId
        AND convert(DATE, tl.created_ts) = CONVERT(DATE, CONVERT(VARCHAR(10), ll.CreateDateKey, 7))
    LEFT JOIN EIS.Borrower.Borrower BB ON bb.borrowerid = ll.BorrowerId
    ) AS x
ORDER BY vin

预计从oracle获取一些数据加入tsql

我没有完全明白你想要做什么,但我希望这就是你要找的。

 FROM OPENQUERY(TLXPRD, concat( 'SELECT * FROM TITLE_LOG 
 WHERE title_log_sts_cd in (''Ready to Send to DMV'', ''Sent to DMV'') 
 and ro_store_id =', cast(@VAR as nvarchar(50) ) ))

基本上,您的字符串中有您的变量,但您希望将其作为一个值。 所以我们得到值并将其放入您的字符串中。