【发布时间】:2012-06-15 12:56:22
【问题描述】:
以下查询在 Oracle 中有效,但在 BizTalk 中无效。一个快速的谷歌告诉我,
"多个语句不适用于 Oracle(和其他数据库) 也可以防止这种情况)。 Oracle 阻止了所谓的 SQL 注入,黑客用来获取数据库的一种机制 在数据库中运行代码。”
这和子查询一样吗?是否可以在没有子查询的情况下编写此查询?
update order_header oh set uploaded = 'Y'
where oh.user_def_chk_3 = 'N'
and oh.status in('Complete','Shipped')
and oh.client_id in (select c.client_id from client c
where upper(c.notes) like 'BERGEN%');
【问题讨论】:
-
不知道 biztalk,但是子查询和多个语句是不同的东西,所以这应该可以作为单个语句。但是...当您通过适配器运行它时,您是否保留了尾随的
;? JDBC 不喜欢这样,它可能被 biztalk 解释为试图将两个语句连接在一起 - 所以我猜它是不需要的。否则,实际的错误消息会很有帮助。 -
@AlexPoole 哇,我不认为子查询意味着多个语句,但我从来没有想过使用 ;这意味着 BizTalk 认为有 2 个查询。删除分号解决了这个问题。
标签: sql oracle biztalk biztalk-2010