【问题标题】:error while trying to select from external table尝试从外部表中选择时出错
【发布时间】:2016-06-03 09:44:01
【问题描述】:

我在尝试select * from ext_poc时遇到以下错误

ORA-29913: 执行 ODCIEXTTABLEOPEN 标注时出错 ORA-29400: 数据磁带错误 KUP-00554:解析访问参数时遇到错误 KUP-01005:语法错误:找到“标识符”:期待以下之一:“binary_double、binary_float、逗号、char、date、defaultif、decimal、double、float、integer、(、no、nullif、oracle_date、oracle_number、position、raw , recnum, ), 无符号, varrawc, varchar, varraw, varcharc, zoned" KUP-01008:错误的标识符是:varchar2 KUP-01007:在第 4 行第 10 列 29913. 00000 - “执行 %s 标注时出错” *原因:指定标注的执行导致错误。 *Action:检查错误消息采取适当的措施。

下面是表格的ddl

CREATE TABLE "JDASTG"."EXT_POC" 
(   "ID" varchar2(100), 
"NAME"   varchar2(100), 
"DOB"    varchar2(100)
) 

ORGANIZATION EXTERNAL 
( TYPE ORACLE_LOADER
  DEFAULT DIRECTORY "SCPO_EXT_DATA"
  ACCESS PARAMETERS
  ( RECORDS DELIMITED BY NEWLINE    
  FIELDS TERMINATED BY ','    
  MISSING FIELD VALUES ARE NULL               
  (id      varchar2(100),    
  name     varchar2(100),     
  dob      varchar2(100)                
  )        
)
  LOCATION
   ( 'xyz_aldrin.csv'
   )
);

PS: 但是,如果将 varchar2(100) 更改为 char(100),则不会发生此错误:

MISSING FIELD VALUES ARE NULL               
(id      char(100),    
name    char(100),     
dob     char(100)                
)   

【问题讨论】:

  • 您的问题是什么?错误消息文本告诉您出了什么问题。

标签: oracle external-tables


【解决方案1】:

区分表上指定的 oracle 内部数据类型和外部表(sqlldr 的控制文件)的访问参数中指定的外部数据类型很重要。牢记这一点,再次阅读manual。它应该变得清晰。 SQL 加载器中允许使用 CHAR,而 VARCHAR2 则不允许

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-11
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多