使用 xml 格式将查询插入数据库的 esql 命令
Posted
技术标签:
【中文标题】使用 xml 格式将查询插入数据库的 esql 命令【英文标题】:esql command to insert query into data base using xml format 【发布时间】:2021-01-22 15:06:45 【问题描述】:我尝试使用 esql 代码插入 sql 查询:
INSERT INTO Database.dbo.CUSTOMERS Values (9330,'Sai',7);
它工作正常,但是当它尝试使用 xml 格式插入代码时显示错误,例如:
INSERT INTO Database.dbo.CUSTOMERS(ID,NAME,AGE) Values (InputRoot.XMLNSC.emps.emp.id,InputRoot.XMLNSC.emps.emp.name,InputRoot.XMLNSC.emps.emp.age);
然后它显示errors,如BIP2230E
、BIP2488E
、BIP2321E
。
如果有任何连接问题意味着第一个插入命令也应该不起作用。选择也可以正常工作。
有解决问题的建议吗?
【问题讨论】:
Srikanth - 它是基于 SOAP(WSDL) 的调用还是 REST 调用?从您的快照错误来看,它看起来像是一个 SOAP 调用。 仅休息我使用了 http 节点,但我不知道为什么它以肥皂格式显示。而且我的端口号也会自动更改..我是这份工作的新手.. 请使用POSTMAN试试。此外,要调试,请尝试将输入 XML 的值分配给 SET ID = InputRoot.XMLNSC.emps.emp.id 等变量,并检查这些值是否已分配给变量。还可以利用 Trace 节点查看数据流经消息流时的外观,或将流置于调试模式以查看值 @SrikanthKonduru:请不要使用屏幕截图来判断错误。将完整的 SOAP 错误以纯文本形式粘贴到问题中。我们看不到完整的错误。 你需要花更多的时间在你的问题上。截图没有用,因为重要的细节没有包含在截图中。 【参考方案1】:很明显,您的路径(InputRoot.XMLNSC.emps.emp.id 等)在 InputRoot.XMLNSC 下不存在。您可以使用调试器或(更好的)跟踪节点轻松检查这一点。 要解决此问题,请更正这些路径。
您还应该声明和使用 REFERENCE 变量,以使您的 ESQL 更具可读性:
-- This is not the correct path, otherwise your code would be working already!
DECLARE refEmp REFERENCE to InputRoot.XMLNSC.emps.emp;
INSERT
INTO Database.dbo.CUSTOMERS(ID,NAME,AGE)
VALUES (refEmp.id,refEmp.name,refEmp.age)
【讨论】:
以上是关于使用 xml 格式将查询插入数据库的 esql 命令的主要内容,如果未能解决你的问题,请参考以下文章
将 SQL 的 XML 结果列命名为“用于 xml 显式”?
在插入 mongo 查询到 java 代码期间使用 ISODate 函数将数据字符串转换为 Date 格式