我正在尝试在 Linux VM 上使用 oracle 11g 运行一个简单的外部表程序。问题是我无法从 .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 的权限,并且我确实具有读/写权限。
有任何想法吗?