应用程序错误: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的主要内容,如果未能解决你的问题,请参考以下文章
OEM sql monitor 报错java.sql.SQLException: ORA-31011