gpt4 book ai didi

java - 如何在java中使用Prepared Statement进行Microsoft SQL Xpath查询

转载 作者:行者123 更新时间:2023-11-30 05:38:26 25 4
gpt4 key购买 nike

我很难尝试在 java 中对以下 sql xml xpath 查询使用准备语句。

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() 函数的文档 → here

关于java - 如何在java中使用Prepared Statement进行Microsoft SQL Xpath查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56176093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com