Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BI发布者SQL vs SQL开发人员-Varchar日期字段_Sql_Oracle_Bi Publisher - Fatal编程技术网

BI发布者SQL vs SQL开发人员-Varchar日期字段

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

我能够在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'

也许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'

这里有隐式类型转换。顶部工会有日期,底部工会有字符。选择一个,而不是两个。