来自多个 Oracle 数据库的嵌套查询
在 .NET 中,是否可以从两个单独的 Oracle 数据库运行嵌套查询?
例如
“选择我的值, 来自数据库中的表_1 WHERE my_value IN ( 选择 my_value FROM table_in_database_2 )"
如果是这样,我将如何执行此操作?
最终,这是为了克服在条件列表中使用包含超过 1000 个项目的“in”语句时出现的“ORA-01795”错误,而无需中断将查询输出到多个“OR value IN”列表中。
In .NET, Is it possible to run a nested query from two separate Oracle databases?
E.g.
"SELECT my_value,
FROM table_in_database_1
WHERE my_value IN ( SELECT my_value
FROM table_in_database_2 )"
If so, how would I go about doing this?
Ultimately, this is an effort to overcome an "ORA-01795" error from using an "in" statement with over 1000 items in the conditional list, without having to break the query out into multiple "OR value IN" lists.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您也许可以简单地构建数据库链接并通过该链接加入,但这可能会带来性能问题。像这样的事情:
在数据库 1 上构建到数据库 2 的链接。
将数据库 1 上的表连接到数据库 2 上的表:
根据链接的性能,您可以选择使用混合方法来实现此目的,同时涉及数据库链接和临时表。
如上建立数据库链接。在数据库 1 上构建一个临时表,其中保存要在数据库 2 的子查询中使用的值
。将值从 db2 复制到 db1:
最后,将数据库 1 表连接到临时表。
You might be able to get away with simply building a database link and joining over that link, but that can have performance issues. Something like this:
Build a link to database 2 on database 1.
Join your table on database 1 to the table on database 2:
Depending on the performance of the link, you may opt to use a hybrid approach for this, involving both a database link and a temporary table.
Build a database link as above. Build a temporary table on database 1 that holds the values to be used in the subquery from database 2.
Copy the values from db2 to db1:
Finally, join your database 1 table to the temporary table.
如果无法建立数据库链接,您还可以将
SELECT my_value FROM table_in_database_2
中的所有值插入到 database_1 中的临时表中,然后进行联接。If you can't make a database link, you can also insert into a temp table in database_1 all values from
SELECT my_value FROM table_in_database_2
and after that make the join.是的 - 您可以为此查看数据库链接。
Yes - you can look into Database Links for this.