当前位置: 首页 > 知识库问答 >
问题:

为什么有效的日期插入抛出java.sql.sqlDataException:ORA-01843:不是有效的月份oracle java

索卓
2023-03-14

我试图将日期值插入到oracle数据库中,但它抛出java.sql.sqldataexception:ORA-01843:不是一个有效的月份。发生的最奇怪的事情是,当我打开oracle仪表板并在sql命令中执行相同的查询时,它完全工作,但当试图从java执行查询时,它启动了异常

这是我的密码

try {
        
            Connection con=Connexion.getConnection();
            Statement stmt=con.createStatement();
            Format formatter = new SimpleDateFormat("MM/dd/YYYY");
            String ddebut=formatter.format(dateDebut);
            String dfin=formatter.format(dateFin);

            System.out.println(ddebut);
            System.out.println(dfin);
            String query ="INSERT INTO Intervention (titre,lieu,etat,description,datedebut,datefin,ide) VALUES ('"+titre+"','"+lieu+"','"+etat+"','"
                    +description+"','"+ddebut+"','"+dfin+"',"+cin+")";
            System.out.println(query);

            test=stmt.executeUpdate(query);
            System.out.println(formatter.format(dateDebut));
            ResultSet rs=stmt.executeQuery("select intervention_seq.currval from DUAL");
            rs.next();
            id=rs.getInt(1);
        
        
            con.close();  
        
    

        }catch(Exception e){ System.out.println(e);}
        return test==1;
    }

我确信问题来自查询,所有属性值都是正确的

共有1个答案

司易安
2023-03-14

这几乎肯定是一个NLS问题。尝试提供您的日期为“20/05/2021”和“19/05/2021”。每个客户机(例如,Oracle仪表板和Java程序是两个不同的客户机)可以有不同的NLS设置。除其他外,这些文件还控制默认的日期和时间格式。

 类似资料:
  • 其中为 附言。我知道那里有安全问题,但现在不是问题。

  • 我在尝试从按日期筛选的表中选择数据时遇到了一个问题。 例如: null 此选择的结果是:

  • 这是我的oracle sql查询。我正在用Python运行它。当我在Oracle SQL Developer中运行它时,它会给出结果,但每当我试图在pycharm中执行它时,就会出现以下错误: cx_oracle.databaseError:ORA-01843:不是有效月份 当我跑的时候 这在oracle sql developer中显示

  • 我为PHP更改了OCI8版本,由于该查询不起作用: 我收到这个消息: 消息:oci_execute():ora-01843:不是有效月份 它与Toad一起用于Oracle11。你有什么解决办法吗? 谢谢:)

  • 我有一个在PL-SQL视图中使用的查询。该视图包含一个名为Jde_date的函数,该函数采用Julian格式的date参数并将其转换为Gregorian格式,它工作得很好。 查询如下: 但是当我发布报告时,我得到错误ORA-01843:不是一个有效的月份。 我该怎么解决?

  • 我遇到以下错误 ORA-01843:不是有效月份 底层视图