应用程序错误:ORA-19202:XML 处理中发生错误 ORA-01843:不是有效月份 - Oracle Apex

Posted

技术标签:

【中文标题】应用程序错误:ORA-19202:XML 处理中发生错误 ORA-01843:不是有效月份 - Oracle Apex【英文标题】:Error in application: ORA-19202: Error occurred in XML processing ORA-01843: not a valid month - Oracle Apex 【发布时间】:2020-01-16 08:50:49 【问题描述】:

我在使用 Oracle Apex 工具时遇到问题。也就是说,我正在制作一个餐桌预订申请,我想打印特定日期下的所有预订。所以我选择了打印所有预订的日期,按下打印按钮,Apex 向我抛出以下错误:

ORA-19202: 处理 XML 时出错 ORA-01843: 无效 月。

之前,我已经巧妙地添加了 AOP 和一个 word 文档。

在右侧窗口中,我选择了 SQL 数据类型:SQL,并在代码数据中放置了代码。 后来我在代码中添加了“TO DATE”,但这并不能解决我的问题。

代码如下:

select 
    'file1' as "filename",
    cursor(select
        TO_DATE(D.SIFRA_DATUMA_REZERVACIJE, 'MM/DD/YYYY') as "datum_rezervacije",
        cursor(select
            R.SIFRA_REZERVACIJE as "sifra_rezervacije", 
            G.IME_PREZIME as "ime_prezime", 
            R.BROJ_OSOBA as "broj_osoba",
            S.SIFRA_STOLA as "broj_stola",
            R.NAPOMENA_REZERVACIJE as "napomena",
            P.NAZIV_PRIGODE as "prigoda"
            from 
        GOST G, PRIGODA P, STOL S, REZERVACIJA R   where 
            R.SIFRA_GOST_REZERVACIJA = G.SIFRA_GOSTA
            and R.SIFRA_STOL_REZERVACIJA = S.SIFRA_STOLA
            and R.SIFRA_PRIGODE_REZERVACIJA = P.SIFRA_PRIGODE 
            and TO_DATE(R.SIFRA_DATUM_REZERVACIJE_REZERVACIJA, 'MM/DD/YYYY' ) = TO_DATE(:P6_NEW, 'MM/DD/YYYY') order by TO_DATE(R.SIFRA_DATUM_REZERVACIJE_REZERVACIJA, 'MM/DD/YYYY')) as "rezervacija"
        from
        DATUM_REZERVACIJE D  
        where 
        TO_DATE(D.SIFRA_DATUMA_REZERVACIJE, 'MM/DD/YYYY')= TO_DATE(:P6_NEW, 'MM/DD/YYYY')) as "data" 
from dual;

【问题讨论】:

轻松为您提供帮助:minimal reproducible example. 今日提示:始终使用现代、明确的JOIN 语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。 给我们看输入数据,:P6_NEW的日期格式真的是MM/DD/YYYY吗?然后 NEVER 对已经是 DATE 的值调用 TO_DATE() R.SIFRA_DATUM_REZERVACIJE_REZERVACIJA 列的数据类型是什么?另外,运行查询时绑定变量P6_NEW 的值是多少?您可以在运行应用时(如果您已通过开发者身份验证)使用开发者工具栏中的会话按钮来查看项目的值。 【参考方案1】:

您的日期格式是“美式风格”,但列名指定的语言显然不是英文。可能是您将日期转换为错误的格式,而“dd/mm/yyyy”是此处使用的正确格式?

例如,先在表中插入 12 月 30 日

insert into some_table(date_col) values(to_date('30/12/2019', 'dd/mm/yyyy'));

那么这(查看日期格式)将导致您遇到的相同 - 不是有效的月份

select to_date(date_col, 'mm/dd/yyyy') from some_table;

【讨论】:

以上是关于应用程序错误:ORA-19202:XML 处理中发生错误 ORA-01843:不是有效月份 - Oracle Apex的主要内容,如果未能解决你的问题,请参考以下文章

LPX-00607:无效参考:'ends-with'

OEM sql monitor 报错java.sql.SQLException: ORA-31011

为啥在 s-s-rS 2008 中出现“报告处理中发生意外错误”?

IIS中发布网站的问题

如何在android中发送电子邮件[重复]

检查在 CakePHP 中发送电子邮件是不是成功/失败?