Oracle 外部表抛出错误(有时)
我在Oracle11g中创建了一个外部表 有时会抛出文件未找到的错误。该文件位于oracle外部表目录中,并具有对该文件夹/文件提供的所有权限 奇怪的是,错误并非每次都出现。外部表上的select大部分时间都有效。但有时会出现这种错误。这取决于甲骨文的心情P 已完成:Oracle 外部表抛出错误(有时),oracle,oracle11g,runtime-error,external-tables,Oracle,Oracle11g,Runtime Error,External Tables,我在Oracle11g中创建了一个外部表 有时会抛出文件未找到的错误。该文件位于oracle外部表目录中,并具有对该文件夹/文件提供的所有权限 奇怪的是,错误并非每次都出现。外部表上的select大部分时间都有效。但有时会出现这种错误。这取决于甲骨文的心情P 已完成: 我已经向目录提供了所有拨款 我已提供chmod 777(rwx)访问这些文件的权限 我在每次运行(*.log、*.dsc和*.bad)后归档元数据文件 错误: ORA-29913:执行ODCIEXTTABLEOPEN调用时出错
- 我已经向目录提供了所有拨款
- 我已提供chmod 777(rwx)访问这些文件的权限
- 我在每次运行(*.log、*.dsc和*.bad)后归档元数据文件
CREATE TABLE SCHEMA_NAME.DIM_OWNING_CENTER_EXT
(
S_OWNING_CENTER_ID VARCHAR2 (50),
OWNING_CENTER VARCHAR2 (52),
ED_START_DATE DATE
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY XFB_EXT_TAB_DATA
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
SKIP 2
LOAD WHEN (
S_OWNING_CENTER_ID != 'FILETRAILER'
)
FIELDS TERMINATED BY '|^'
MISSING FIELD VALUES ARE NULL (
S_OWNING_CENTER_ID CHAR (50),
OWNING_CENTER CHAR (52),
ED_START_DATE DATE 'DD-MON-YYYY HH24:MI:SS'
)
)
LOCATION ('DIM_OWNING_CENTER_FEED.dat')
)
PARALLEL 8 REJECT LIMIT UNLIMITED;
这取决于甲骨文的心情
否,这取决于您恰好连接到哪个实例,以及运行该实例的节点上是否存在DIM\u OWNING\u CENTER\u FEED.dat
文件。如果您只在其中一个节点上创建了它,那么它有时会工作,有时会出错。通过查询v$instance
,您可以检查您在哪个实例上,无论它何时工作,何时不工作
如果出于某种原因,您只想在一个节点上维护文件(并处理日志等),那么您必须修改脚本以连接到该特定实例。但是,如果该实例由于某种原因(修补或其他原因)出现故障,它无论如何都会失败。当然,这也是RAC的重点
另一种方法是让两个节点呈现相同的物理文件,例如通过NFS将相同的实际文件系统/路径装载到两个节点上
XFB\u EXT\u TAB\u DATA
目录对象指向的任何位置。或者,您可以在运行时使用预处理器脚本从某个共享位置复制文件,但这有其自身的复杂性。您使用的是独立数据库还是RAC?如果是RAC,文件是否存在于每个节点的文件系统目录中?RAC DB。问题是它大部分时间都有效。但有时它会抛出上述错误。此错误主要发生在从unix脚本调用我的包时。对,文件是否存在于两个节点上的文件系统中?如果没有,那么它是否工作或出错将取决于您的脚本恰好连接到哪个实例。Thans Alex提供了详细信息。我正在与我的DBA团队核实,这似乎就是问题所在。希望现在能解决。谢谢你的帮助。