BI Publisher SQL vs SQL Developer - Varchar Date Field

时间:2017-03-01 21:05:10

标签: sql oracle bi-publisher

我能够获得以下代码来处理SQL Developer,但是当我在BI Publisher中运行它时,我得到了ORA-1722:无效的数字

SELECT NVL(:PM_date_from,TO_DATE(TO_CHAR(SYSDATE -1,'yymm')||'01','yymmdd')) from_date_batch
                          ,NVL(:PM_date_to,SYSDATE -1) to_date_batch
                      FROM DUAL
                     WHERE :PM_mode = 'B'
                     UNION ALL
                    SELECT NVL(:PM_date_from,TO_CHAR('1901-01-01','YYYY-MM-dd')) from_date_batch
                          ,NVL(:PM_date_to,TO_CHAR('2036-01-01','YYYY-MM-dd')) to_date_batch
                      FROM DUAL
                     WHERE :PM_mode = 'A'

1 个答案:

答案 0 :(得分:1)

也许SQL开发人员正在做一些假设,但在这个sql的第二部分,你将需要一个to_date函数,而不是to_char。

试试这个:

SELECT NVL(:PM_date_from,TO_DATE(TO_CHAR(SYSDATE -1,'yymm')||'01','yymmdd')) from_date_batch
                          ,NVL(:PM_date_to,SYSDATE -1) to_date_batch
                      FROM DUAL
                     WHERE :PM_mode = 'B'
                     UNION ALL
                    SELECT NVL(:PM_date_from,TO_DATE('1901-01-01','YYYY-MM-dd')) from_date_batch
                          ,NVL(:PM_date_to,TO_DATE('2036-01-01','YYYY-MM-dd')) to_date_batch
                      FROM DUAL
                     WHERE :PM_mode = 'A'