繁体   English   中英

执行查询时在服务器端出错

[英]Getting error on server side while executing query

我们有一个具有 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_TBL 您可以尝试编写一个测试过程,以查看是否可以使用UTL_FILE包打开和读取此文件。

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

ORA-29913: 执行 ODCIEXTTABLEOPEN 标注时出错

从外部表中选择时出现 sqlplus 错误:ORA-29913:执行 ODCIEXTTABLEOPEN 标注时出错

执行 ODCIEXTTABLEOPEN 标注时出错

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM