尝试在外部表上运行时选择“ mts”,“ ORA-29913:执行ODCIEXTTABLEFETCH标注错误ORA-29400:数据盒带错误”

时间:2019-11-02 10:47:50

标签: linux oracle

我的数据库具有一个外部表(my_ext_table),该表指向数据库服务器硬盘驱动器上的文本文件(my_text_file.txt)。当我使用TOAD连接到数据库服务器时,我使用数据库的用户名和密码(my_db_account)。要访问文本文件,我使用完全不同的用户(my_linux_os_account),该用户使用终端服务访问数据库服务器。

当我尝试从TOAD的my_ext_table中选择数据时,出现以下错误:

[Error] Execution (25: 30): 
ORA-29913: error in executing ODCIEXTTABLEFETCH callout ORA-29400: data cartridge error
KUP-04005: error while accessing file /my_server_dir/my_text_file.txt

日志文件中包含以下错误:

KUP-04017: OS message: Permission denied
KUP-04118: operation "open failed", location "SlfOpen1"

以my_linux_os_account登录到终端服务时,我可以查询该表,并且以my_db_account登录,可以使用sqlplus登录。

我希望能够使用TOAD查询表。

我的同事建议我应该尝试使用my_linux_os_account用户身份进行代理。

是否可以从TOAD编辑器窗口中执行此操作?我应该使用哪种工具作为其他用户代理以使用select语句访问数据?

或者,可以更改文本文件上的权限,以便我的数据库用户拥有该文本文件的权限吗?

1 个答案:

答案 0 :(得分:1)

要使查询在TOAD中生效,我修改了my_text_file.txt的权限:

chmod o=r my_text_file.txt