簡體   English   中英

如何在 Java 中為 Microsoft SQL Xpath 查詢使用准備好的語句

[英]How to use Prepared Statement for Microsoft SQL Xpath queries in java

我很難嘗試在java對以下sql xml xpath查詢使用 Prepared Statement 。

SELECT * 
FROM dbo.EMPLOYEE_DTLS 
WHERE EMPLOYEE_DTLS.EMP_XML.exist('//emp/empId[text()[1]=?]')= 1 AND 
(EMPLOYEE_DTLS.EMP_XML.exist('//emp/designationList/designation[contains(.,?)]')= 1 OR
  EMPLOYEE_DTLS.EMP_XML.exist('//emp/designationList/designation[contains(.,?)]')= 1 OR  1!=1)

我想為所有地方設置值? 象征。 由於? 在 xpath 中的單引號內,它不被視為占位符,我無法設置值。 有人可以幫我解決這個問題。 任何幫助是極大的贊賞。

在 XPath(或 XQuery)表達式中直接指定參數化值是不可能的。 但是,您可以做的是在 XPath (XQuery) 表達式中使用sql:variable("variable_name")函數來引用變量。

所以你會有一個像這樣的腳本:

DECLARE @some_variable NVARCHAR(128)=?; -- specify the parameter here
SELECT * 
FROM dbo.EMPLOYEE_DTLS 
WHERE EMPLOYEE_DTLS.EMP_XML.exist('//emp/empId[text()[1]=sql:variable("@some_variable")]')=1 -- etc.

您可以找到有關sql:variable()函數的文檔 → 此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM