Java 执行查询时在服务器端获取错误

Java 执行查询时在服务器端获取错误,java,sql,oracle,Java,Sql,Oracle,我们有一个具有ETL过程的JAVA应用程序。当我们执行ETL过程时,zip文件被解压,其中包含许多csv文件。使用这个csv文件,我们将数据加载到外部表中。在将数据加载到外部表时,我们遇到以下错误 CREATE TABLE "EXTERNAL_TABLE" ( "column1" VARCHAR2(10 BYTE), "column2" VARCHAR2(40 BYTE), "column3" VARCHAR2(64 BYTE) ) ORGANI

我们有一个具有ETL过程的JAVA应用程序。当我们执行ETL过程时,zip文件被解压,其中包含许多csv文件。使用这个csv文件,我们将数据加载到外部表中。在将数据加载到外部表时,我们遇到以下错误

 CREATE TABLE "EXTERNAL_TABLE" 
   (    "column1" VARCHAR2(10 BYTE), 
    "column2" VARCHAR2(40 BYTE), 
    "column3" VARCHAR2(64 BYTE)
   ) 
   ORGANIZATION EXTERNAL 
    ( TYPE ORACLE_LOADER
      DEFAULT DIRECTORY "EXT_DIRECTORY"
      ACCESS PARAMETERS
      ( RECORDS DELIMITED BY '\n'
    BADFILE EXT_DIRECTORY:'test.bad'
    DISCARDFILE EXT_DIRECTORY:'test.dsc'
    SKIP 1
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"' AND '"'
    LRTRIM
    MISSING FIELD VALUES ARE NULL (
    column1 CHAR(4000),    column2 CHAR(4000),    column3 CHAR(4000)    )
      )
      LOCATION
       ( 'test.csv'
       )
    )
   REJECT LIMIT UNLIMITED ;
错误:

Caused by: java.sql.BatchUpdateException: error occurred during batching: ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04040: file test.csv in TEST_TBL not found at oracle.jdbc.driver.OracleStatement.executeBatch(OracleStatement.java:4615)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:230)

当数据库试图访问外部表,而外部表定义中调用的文件不存在或无法访问时,会引发此异常。在本例中,它要查找的文件是
test.csv
,该文件应该存在于数据库中名为
test\u TBL
的目录中。您可以尝试编写一个测试过程,看看是否可以使用
UTL\u文件
包打开并读取此文件

由于缺乏详细信息,很难说本网站上提及类似问题的任何其他答案是否适用于您的情况,但您可以查看以下内容:


您需要更具体地说明您的问题。你试了什么?预期的结果是什么?你能给我们看一些代码吗?请阅读并编辑您的问题以改进它。非常感谢。A你一直想做什么?似乎您的测试无法访问。您是否试图使用这里描述的外部表:如果您不让我们知道您实际在做什么,那么很难提供帮助。