sqldeveloper输出count(*)的正确结果,而sqlplus结果为零

时间:2014-09-15 05:18:39

标签: oracle

我在sqlplus和sqldeveloper中获得count(*)的不同输出。 数据库是Oracle 11G。

SQL Developer

Select count(*) from table1 where web_ck_d = to_char(sysdate-1,'DD-MON-YY');
Count(*)
1083171

用sqlplus

SQL> Select count(*) from table1 where web_ck_d = to_char(sysdate-1,'DD-MON-YY');
COUNT(*)
      0

该表在all_tables中有NUM_ROWS-357238869,BLOCKS-14978755,PARTITIONED-YES。

不明白为什么sqlplus会产生0。 请帮忙。

1 个答案:

答案 0 :(得分:2)

当您使用自定义日期格式时,如果oracle找不到合适的日期格式,它将会在会话中查找默认日期格式。

Sql-developer有自己的会话,sqlplus有自己的会话。 Sql开发人员的日期格式在NLS日期参数中指定,您可以从: Tools > Preferences > Database > NLS进行检查。

您可以使用以下查询

检查sql plus中的日期
select sysdate from dual;

您可以按如下方式设置所需的日期格式:

alter session set NLS_TIMESTAMP_FORMAT='DD-MON-YYYY HH24:MI:SS.FF';

您可以在此处使用所需的格式。