Oracle数据库:SQL查询在不同的环境中有不同的行为

Oracle数据库:SQL查询在不同的环境中有不同的行为,oracle,Oracle,我试图在两个“Oracle SQL Developer”中执行以下SQL查询。在不同的环境中(本地/客户端) 查询: SELECT DISTINCT t.* FROM myTable t WHERE (:P_STATUS = -1 OR t.STATUS = :P_STATUS); 参数: P_STATUS=-1“整数”(显示表中的所有数据) 预期结果: 将显示表中的所有记录 结果: 本地:显示表中的所有记录 客户端:表中未显示任何记录 注: 1-以下查询中没有出现问题 SELECT DIST

我试图在两个“Oracle SQL Developer”中执行以下SQL查询。在不同的环境中(本地/客户端)

查询:

SELECT DISTINCT t.*
FROM myTable t
WHERE (:P_STATUS = -1 OR t.STATUS = :P_STATUS);
参数:
P_STATUS=-1“整数”
(显示表中的所有数据)

预期结果:
将显示表中的所有记录

结果:
本地:显示表中的所有记录
客户端:表中未显示任何记录

注:
1-以下查询中没有出现问题

SELECT DISTINCT t.*
FROM myTable t
WHERE :P_STATUS = -1) ;
SELECT DISTINCT t.*
FROM myTable t
WHERE (:P_STATUS = -1 OR 1=2);
2-它昨天在客户端执行得很好,但今天它出现了这种奇怪的行为。因此,我认为有一个改变的配置,但我不能期待它或发现任何类似的问题在谷歌

3-当我选择特定状态(:p_status=2)时,查询也执行得很好

更新: 如果从表中选择,查询将正确运行,但如果从表的视图中选择,则不会返回任何数据

也可以在Toad中正确运行,在SQL Developer中不正确运行

状态数据类型中存在问题。在表号(2)和视图中 但下面的查询使它在SQLDeveloper上运行

SELECT DISTINCT t.*
FROM myTable t
WHERE (:P_STATUS = -1 OR to_number(t.STATUS) = :P_STATUS);

如果数据已从本地计算机上的会话中插入,但尚未提交,则该数据将仅在该会话中可见(处于未提交状态)。尝试
选择
来自另一个会话(即客户端)的数据将不会显示任何结果


要解决此问题,请提交本地会话中的数据。

数据已提交,如果我输入不同的状态(例如:p_status=2),表将返回数据。客户端和本地是否都连接到同一数据库?它们是否都连接到同一个用户(
selectuser FROM DUAL
)和表空间(
selecttable\u name,tablespace\u name FROM user\u tables,其中table\u name='MYTABLE'
)?如果您确实
描述myTable两者的描述是否相同?