Oracle where exists 子句不适用于 SQL Plus
Posted
技术标签:
【中文标题】Oracle where exists 子句不适用于 SQL Plus【英文标题】:Oracle where exists clause not working on SQL Plus 【发布时间】:2017-11-14 15:07:47 【问题描述】:我有一个带有“WHERE EXISTS()”子句的查询。 当我在 SQL Developer 上执行它时,它会返回行,但是当我在 SQL Plus 中执行它时它不会。
有人知道为什么会这样吗? 提前致谢。 问候, 若昂
【问题讨论】:
查询是什么,如果有表的描述和样本数据也有帮助。 在其他任何事情之前,只需检查您在 SQL Developer 中没有待处理的commint 在 99% 的情况下,结果证明一个工具连接到不同的数据库(或用户)然后另一个。 【参考方案1】:如果查询将行返回到一个数据库会话(例如,由 SQL Developer 创建)并且不返回另一个(例如,由 SQL Plus 创建)中的任何行,则意味着这些会话是不同的。
区别可能是:
数据库已连接 已连接用户 当前架构 NLS 设置 FGAC 政策 等等……正如胡安所说,未提交的数据也可能会影响这一点。
如果您查看 SQL Developer 中的某些行,我会说检查您是否可以将这些行访问到 SQL Plus(使用类似 select * from table where id = <id visible in SQL Developer>
的东西)。如果这返回一些行 - 请查看为什么它会被 SQL Plus 中的查询过滤。如果这不返回行,请查看您是连接到不同的数据源还是无权访问数据。
【讨论】:
感谢您的帮助。它是使用的模式。sql developer 上的会话正在使用一个模式,而 sqlplus 上的连接正在使用另一个模式完成。 -.-'以上是关于Oracle where exists 子句不适用于 SQL Plus的主要内容,如果未能解决你的问题,请参考以下文章