BI发布者SQL vs SQL开发人员-Varchar日期字段
我能够在SQL Developer上运行以下代码,但当我在BI Publisher中运行它时,我得到了ORA-1722:无效数字BI发布者SQL vs SQL开发人员-Varchar日期字段,sql,oracle,bi-publisher,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 F
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'
也许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'
这里有隐式类型转换。顶部工会有日期,底部工会有字符。选择一个,而不是两个。