Database Oracle 11g外部表错误

Database Oracle 11g外部表错误,database,oracle,external,Database,Oracle,External,我正在尝试在LinuxVM上使用Oracle11g运行一个简单的外部表程序。问题是我无法从.txt文件中查询任何数据 这是我的密码: CONN / as sysdba; CREATE OR REPLACE DIRECTORY DIR1 AS 'home/oracle/TEMP/X/'; GRANT READ, WRITE ON DIRECTORY DIR1 TO user; CONN user/password; CREATE TABLE gerad

我正在尝试在LinuxVM上使用Oracle11g运行一个简单的外部表程序。问题是我无法从.txt文件中查询任何数据
这是我的密码:

    CONN / as sysdba;

    CREATE OR REPLACE DIRECTORY DIR1 AS 'home/oracle/TEMP/X/';
    GRANT READ, WRITE ON DIRECTORY DIR1 TO user;

    CONN user/password;

    CREATE TABLE gerada
    (
        field1   INT,
        field2   Varchar2(20)
    )
    ORGANIZATION EXTERNAL
    (
            TYPE ORACLE_LOADER
            DEFAULT DIRECTORY DIR1
            ACCESS PARAMETERS 
            (
                    RECORDS DELIMITED BY NEWLINE
                    FIELDS TERMINATED BY ';'
                    MISSING FIELD VALUES ARE NULL
            )
            LOCATION ('registros.txt')
    )
    REJECT LIMIT UNLIMITED;

    --Error starts here.
    SELECT * FROM gerada;

    DROP TABLE gerada;

    DROP DIRECTORY DIR1;
以下是错误消息:

第1行出错:
ORA-29913:执行ODCIEXTTABLEOPEN调用时出错
ORA-29400:数据盒带错误
打开文件home/oracle/TEMP/X/GERADA_3375.log时出错

这就是registros.txt的外观:

    1234;hello world;
我已经检查了我对DIR1的权限,我确实有读/写权限


有什么想法吗?

ORA-29913和ORA-29400表示您无法访问目录和/或文件

仔细查看createdirectory命令,您使用的路径可能格式错误。在创建目录时,尝试在路径的开头放一个正斜杠,并删除路径末尾的正斜杠-例如,
将目录DIR1创建或替换为“/home/oracle/TEMP/X”


共享和享受。

oracle process的所有者是否拥有对DIR1的读/写权限?Bob Jarvis,该代码通过使用您的建议并从位置删除扩展名“.txt”来工作。我就是不明白为什么!