java.sql.SQLException : ORA-01841: (full) year must be between -4713 and +9999, 并且不是 0

标签 java sql jdbc

我已经从配置属性文件中仔细阅读了 B 详细信息。现在我尝试通过命令行参数传递起始和截止日期值来执行查询。我遇到了异常。请让我知道如何通过命令行参数将日期值传递到我的查询中。 注意:我已经使用所有库文件创建了 excutalbel Jar 文件。

输出:
java -jar CreateExcelFile1.jar 2014/01/20 2014/01/24

        Command line arguments length is 2
       Array index 0 value is 2014/01/20
      Array index 1 value is 2014/01/24
       Connection Successful
         java.sql.SQLException: ORA-01841: (full) year must be between -4713 and +9999, and not be 0

代码:

   public class CreateExcelFile extends DbConnection{
   public static void main(String[] args) {
  try{
System.out.println("Command line arguments length is " + args.length);
System.out.println("Array index 0 value is " + args[0]);
System.out.println("Array index 1 value is " + args[1]);
      Connection con = openConnection();
      PreparedStatement st=con.prepareStatement("Select a.oi_intervention_id ,a.oi_region,a.oi_mrn,b.opi_title, a.oi_rx_nb ,a.oi_store_id,to_char(a.oi_doc_crtd_dt,'dd-MON-yy') as SheetName,to_char(a.oi_doc_crtd_dt,'dd-MON-yy hh.mi.ss,FF AM TZH:TZM') as oi_doc_crtd_dt,to_char(a.oi_doc_expry_dt,'dd-MON-yy hh.mi.ss,FF AM TZH:TZM') as oi_doc_expry_dt from rxesbopcs.OPCS_INTERVENTION a ,rxesbopcs.opcs_program_info b where trunc(a.oi_doc_crtd_dt) BETWEEN TO_DATE ('args[0]', 'yyyy/mm/dd') AND TO_DATE ('args[1]', 'yyyy/mm/dd') and b.opi_program_id = a.oi_program_id order by a.oi_doc_crtd_dt",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    ResultSet rs=st.executeQuery();
     createXls(rs);
     System.out.println("Your excel file has been generated!");
      closeConnection(con);
    } catch ( Exception ex ) {
     System.out.println(ex);
     }
     }

最佳答案

我认为您需要在要插入变量值的查询字符串中放置占位符,例如而不是

 BETWEEN TO_DATE ('args[0]', 'yyyy/mm/dd') 

你会放

 BETWEEN TO_DATE (?, 'yyyy/mm/dd') 

然后在执行查询之前调用st.setString(1, args[0]);,其他参数也类似。

您可能想查看how to use prepared statements

关于java.sql.SQLException : ORA-01841: (full) year must be between -4713 and +9999, 并且不是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499861/

相关文章:

java - RESTFUL web 服务 spring,XML 而不是 JSON?

JavaFX 2 嵌入 YouTube 视频

php - MySQL - 如何根据用户 ID 合并行并生成 SUM

java - 拦截 JDBC 连接

java - 为什么使用静态 block 而不是直接初始化实例变量?

java - MinecraftForge 1.8 导入不起作用

mysql - SQL 查询将字段值复制到同一个表中

mysql 触发器在达到一定数量的点后更改用户状态

Java 和 MySQL : More than 'max_user_connections' exception

java - 如何将 JDBC azure sql 服务器连接到 Android 应用程序?