请帮忙。我在这里犯了一个小错误,但即使看了前面的问题,我也找不到它。
SELECT TRUNC (SYSDATE) - TO_DATE (open_date_txt, 'yyyy-mm-dd') AS Days_open
FROM 'table'
WHERE TRUNC (SYSDATE) - TO_DATE (open_date_txt, 'yyyy-mm-dd') > 90 AND
TRUNC (SYSDATE) - TO_DATE (open_date_txt, 'yyyy-mm-dd') < 120
查询运行时没有错误,但是当我从结果中选择所有数据时(通过执行Ctrl+a),我得到ORA-1843:不是一个有效的月份。
Name open_date_txt
AA 2010-03-24
BB 2010-07-23
CC 2015-09-20
DD 1997-03-25
谢谢你。
此外,我被错误的数据模型所困扰。此日期字段的值如“0--”,月份值大于12,最后天大于31。现在我想在选择期间忽略这些记录。我创建的存储过程不能正常工作,请提供帮助。谢了。
该错误表示表中至少有一行无法使用给定的格式字符串将open_date_txt
中的值转换为date
。
查询将一直运行到命中该行,然后抛出错误。当然,在输出中永远不会看到导致错误的行,因此很难找到导致问题的值。
一种技术是逐行遍历,并引发一个更有用的异常,以标识导致错误的条目。例如:
DECLARE
d DATE;
BEGIN
FOR x IN (SELECT name, open_date_txt FROM table) LOOP
BEGIN
d := TO_DATE( x.open_date_txt, 'yyyy-mm-dd');
EXCEPTION
WHEN others THEN
raise_application_error(-20000, 'Error on name: ' || x.name, TRUE );
END;
END LOOP;
END;
您还可以修改它以打印行的名称并继续,这样您就可以发现是否有多行包含错误数据。
我为PHP更改了OCI8版本,由于该查询不起作用: 我收到这个消息: 消息:oci_execute():ora-01843:不是有效月份 它与Toad一起用于Oracle11。你有什么解决办法吗? 谢谢:)
我在Oracle DB中有一个列,它是数据类型。存储在此列中的典型值类似于。我试图得到所有的记录,其中该专栏有记录后2015年8月1日。 但是,我得到的是。我哪里做错了?
我使用以下查询创建了一个表 现在,当我尝试使用SQL错误:ORA-01843:not a valid month。 我做错了什么?
我有一个在PL-SQL视图中使用的查询。该视图包含一个名为Jde_date的函数,该函数采用Julian格式的date参数并将其转换为Gregorian格式,它工作得很好。 查询如下: 但是当我发布报告时,我得到错误ORA-01843:不是一个有效的月份。 我该怎么解决?
我在上一篇文章(https://stackoverflow.com/questions/16520216/ora-01843-not-a-valide-month)中问过这个问题,但从那以后它发生了变化,我认为最好从一开始就更加明确。 我在运行从客户表中删除客户的过程时收到此错误。 现在,当我删除一个在placed_order表中没有记录的客户时,记录被删除得很好,当试图删除一个在placed_o
“SQL错误:ORA-01843:无效月份” 我不知道我的查询有什么问题。