SQL * Loader-522:lfiopn文件失败

问题描述 投票:1回答:1

我在运行SQLLDR的脚本中遇到错误:

SQL*Loader-522: lfiopn failed for file (/home/abc/test_loader/load/badfiles/TBLLOAD20150520.bad)

据我所知,这是与权限相关的错误,但我想知道在文件夹“/ load”中没有“badfiles”文件夹存在.i已经在load文件夹之外定义了badfiles文件夹,但为什么在错误中它是占据这个位置?是否像我的输入文件有一些问题和SQLLDR试图在提到位置创建一个坏文件?

下面是SQLLDR命令:

$SQLLDR $LOADER_USER/$USER_PWD@$LOADER_HOSTNAME control=$CTLFDIR/CTL_FILE.ctl BAD=$BADFDIR/$BADFILE$TABLE_NAME ERRORS=
0 DIRECT=TRUE PARALLEL=TRUE LOG=$LOGDIR/$TABLE_NAME$LOGFILE &

下面是控制文件temp:

LOAD DATA
INFILE '/home/abc/test_loader/load/FILENAME_20150417_001.csv' "STR '\n'"
APPEND   
INTO TABLE STAGING.TAB_NAME
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
  COBDATE,
--
--
--
  FUTUSE30 TERMINATED BY WHITESPACE
)  
bash shell oracle11g sql-loader
1个回答
5
投票

是的,您的输入文件有问题,因此sqlldr想要创建包含被拒绝行(BAD文件)的文件。由于权限不足,BAD文件创建失败 - 运行sqlldr的用户无权在您定义为包含BAD文件的文件夹中创建文件。

将BAD文件夹的写权限添加到运行sqlldr的用户或将BAD文件夹放在其他位置。

© www.soinside.com 2019 - 2024. All rights reserved.