Oracle 11G、外部表和.csv文件

Oracle 11G、外部表和.csv文件,oracle,oracle11g,Oracle,Oracle11g,Oracle 11g中的外部表存在问题。我目前正在使用DB Artisan运行我的查询。CREATE和ORGANIZATION代码成功执行,但是当我运行select语句时,我得到了错误。My.csv文件的设置方式与外部_表的布局相同,其标题也是如此。 CREATE TABLE EXTERNAL_TABLE ( COL1 NUMBER(14), COL2 VARCHAR2(10), COL3 VARCHAR2(3), COL4 VARCHAR2(3),

Oracle 11g中的外部表存在问题。我目前正在使用DB Artisan运行我的查询。CREATE和ORGANIZATION代码成功执行,但是当我运行select语句时,我得到了错误。My.csv文件的设置方式与外部_表的布局相同,其标题也是如此。

CREATE TABLE EXTERNAL_TABLE
(
    COL1 NUMBER(14),
     COL2 VARCHAR2(10),
     COL3 VARCHAR2(3),
     COL4 VARCHAR2(3),
     COL4 VARCHAR2(4),
     COL6 NUMBER(4,0),
     COL7 VARCHAR2(20),
     COL8 VARCHAR2(20),
     COL9 NUMBER(3)    
)
ORGANIZATION EXTERNAL 
(
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY FOLDER1
    ACCESS PARAMETERS
    (   
        RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ','
        MISSING FIELD VALUES ARE NULL
        (COL1 CHAR(14),
    COL2 CHAR(10),
    COL3 CHAR(3),
    COL4 CHAR(3),
    COL4 CHAR(4),
    COL6 CHAR(4),
    COL7 CHAR(20),
    COL8 CHAR(20),
    COL9 CHAR(3)                      
                )
    )
    LOCATION ('FILENAME.csv') --Name of flat file.
)
REJECT LIMIT 0;
运行:

SELECT * FROM EXTERNAL_TABLE
给出此错误:

ORA-29913:error in executing ODCIEXTTABLEOPEN callout ORA-29400:data cartridge error KUP-04027:file name check failed: A:\job\job\FILENAME_1234_5566.log ORA-29913:执行ODCIEXTTABLEOPEN调用时出错 ORA-29400:数据盒带错误 KUP-04027:文件名检查失败:A:\job\job\FILENAME\u 1234\u 5566.log
KUP-04027:文件名检查失败
表示文件位置无效

所以,给定这个文件名

A:\job\job\FILENAME_1234_5566.log
。。。有几种想法:

  • 正如@jonearles所指出的,A:传统上是为软盘驱动器保留的。您的数据库服务器(即承载数据库的机器)是否有A:驱动器?如果不是,你应该改正
  • 这个驱动器真的有一个名为
    job
    的根目录和一个名为
    job
    的子目录吗?或者,这是您的目录对象路径中的一个输入错误
    folder1
  • 另外,示例代码将文件名命名为“FILENAME.csv”。显然,这与错误消息中的文件名不匹配。在外部表定义中,您实际为文件名指定了什么
  • KUP-04027的确切原因特定于操作系统,因为文件命名约定是每个操作系统特有的。我的猜测是,您的数据库确实驻留在远程Unix服务器上,但您正在尝试从本地Windows PC读取文件。如果是这种情况,则无法正常工作:您需要将文件上载到数据库服务器

  • KUP-04027:文件名检查失败
    表示文件位置无效

    所以,给定这个文件名

    A:\job\job\FILENAME_1234_5566.log
    
    。。。有几种想法:

  • 正如@jonearles所指出的,A:传统上是为软盘驱动器保留的。您的数据库服务器(即承载数据库的机器)是否有A:驱动器?如果不是,你应该改正
  • 这个驱动器真的有一个名为
    job
    的根目录和一个名为
    job
    的子目录吗?或者,这是您的目录对象路径中的一个输入错误
    folder1
  • 另外,示例代码将文件名命名为“FILENAME.csv”。显然,这与错误消息中的文件名不匹配。在外部表定义中,您实际为文件名指定了什么
  • KUP-04027的确切原因特定于操作系统,因为文件命名约定是每个操作系统特有的。我的猜测是,您的数据库确实驻留在远程Unix服务器上,但您正在尝试从本地Windows PC读取文件。如果是这种情况,则无法正常工作:您需要将文件上载到数据库服务器

  • 好的,这个问题很久以前就被问到了,但是我最近也遇到了这个问题

    问题是dat Oracle外部表不完全支持指向远程网络位置的硬链接。

    我所做的是创建一个目录对象,该对象专门使用UNC路径(如“\remoteserver\proxy”)指向远程网络位置。这对我来说非常有效。

    好的,这个问题很久以前就被问过了,但我最近也遇到了这个问题

    问题是dat Oracle外部表不完全支持指向远程网络位置的硬链接。

    我所做的是创建一个目录对象,该对象专门使用UNC路径(如“\remoteserver\proxy”指向远程网络位置。这对我来说非常有效。

    如果您在RAC中,并且文件在ACFS中,请使用:

    DISABLE_DIRECTORY_LINK_CHECK 
    
    修好它


    请参见

    如果您在RAC中,并且文件位于ACFS中,请使用:

    DISABLE_DIRECTORY_LINK_CHECK 
    
    修好它


    请参见

    检查软盘上的写保护选项卡。LOL!!!软盘返回!从软盘读取Oracle 11g是无价的。dolm77注意-在尝试导入文件之前,将文件移动到硬盘。组织代码是CREATE TABLE命令的一部分,而不是单独的代码。请检查软盘上的写保护选项卡软盘。LOL!!!软盘的返回!从软盘读取Oracle 11g是无价的。注意dolm77-在尝试导入之前将文件移动到硬盘。组织代码是CREATE TABLE命令的一部分,而不是单独的代码。驱动器是另一个映射驱动器的变量。它实际上是J。对不起,我应该有been特定。路径为J:\proxy\proxy,在错误3中,它指的是在运行SELECT语句时创建的日志文件。真正的文件名为“filename.csv”它驻留在数据库所在的远程服务器上。因此.csv不在我的本地驱动器上,它位于外部表的默认目录(称为DATA_TEMP)。我应该问些什么基本问题来确定我的问题?驱动器是另一个映射驱动器的变量。它实际上是J。对不起,我应该具体说明一下。路径是J:\proxy\proxy,在错误3中,它指的是在运行SELECT语句时创建的日志文件。真正的文件名是“filename.csv”它位于数据库所在的远程服务器上。因此,.csv不在本地驱动器上,它位于外部表的默认目录(称为DATA_TEMP)。要确定我的问题,我应该问哪些基本问题?