ORA-29913: error in executing ODCIEXTTABLEOPEN callout(执行 ODCIEXTTABLEOPEN callout 时出错)
Oracle含义
访问外部表时,读取/解析源文件出错。Oracle 在调用访问驱动程序(ORACLE_LOADER / ORACLE_DATAPUMP)例程以获取外部表数据时失败。
原因
通常是 DIRECTORY 对象指向的路径中不存在该文件、Oracle 操作系统用户对文件/目录没有读取权限、没有写入 log/bad 文件的权限,或访问参数(字段分隔符、记录格式)错误。常伴有 ORA-29400 和 KUP-04xxx 等子错误。
解决方法
阅读子错误(KUP-xxxx)以确定根本原因。确认 DIRECTORY 路径以及文件是否存在:SELECT directory_name, directory_path FROM all_directories; 授予 Oracle 操作系统用户对文件和目录的读取权限,以及对 log/bad 目录的写入权限。使外部表定义中的 ACCESS PARAMETERS 部分与源文件格式一致。必要时检查 DIRECTORY 上的 READ/WRITE 授权。
同一数据库的其他条目
- ORA-00600internal error code, arguments: [...](内部错误代码,参数:[...])
- ORA-07445exception encountered: core dump(遇到异常:core dump)
- ORA-01102cannot mount database in EXCLUSIVE mode(无法以 EXCLUSIVE 模式装载数据库)
- ORA-19804cannot reclaim N bytes disk space from M bytes limit(无法从 M 字节的限制中回收 N 字节磁盘空间)
- ORA-00494enqueue held for too long by 'inst N, osid M'(enqueue 被 'inst N, osid M' 持有时间过长)
- ORA-04021timeout occurred while waiting to lock object(等待锁定对象时超时)
- ORA-04061existing state of package/procedure has been invalidated(包/过程的现有状态已失效)