使用 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,如BIP2230EBIP2488EBIP2321E

如果有任何连接问题意味着第一个插入命令也应该不起作用。选择也可以正常工作。

有解决问题的建议吗?

【问题讨论】:

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 格式

使用单个过程将多个 xml 数据动态插入到 sql server 表中

可以直接从 C 代码调用的 ESQL/C 函数?

将数据插入 Informix 中的 TEXT 类型列

XML名命空间