在使用sql loader时,我似乎找不到为infile指定相对路径的方法。
我正在通过命令行运行它,这就是它的样子:
C:\app\...in\sqlldr.exe userid=user/pass
control="C:\User...DATA_DATA_TABLE.ctl" log="C:\User...DATA_DATA_TABLE.log"
bad = "C:\User...DATA_DATA_TABLE.bad" discard = "C:\User...DATA_DATA_TABLE.dsc"
(我在这里添加了回车只是为了可读性,我使用的命令是一行)
这样可行,它将开始在表格中插入内容如果我的infile在.ctl中的路径绝对像“C:\ Usertemp \ example.ldr”
我的ctl是由sqldeveloper自动生成的。我刚刚改变了这条道路:
OPTIONS (ERRORS=50)
LOAD DATA
INFILE 'AI_SLA_DATA_DATA_TABLE.ldr' "str '{EOL}'" <-- i'm trying to get relative path here but doesn't work
APPEND
CONTINUEIF NEXT(1:1) = '#'
INTO TABLE "USER"."DATA"
...other sqldeveloper generated stuff
.ldr文件与.ctl文件位于同一目录中。是否有可能获得ctl的路径?我很确定他会搜索sqlldr.exe而不是ctl旁边的.ldr文件。
有任何提示吗?我在docs.oracle上找不到答案。
感谢。
答案 0 :(得分:0)
我从未尝试过添加.ctl文件的相对路径,但对我来说,它可以作为命令行参数使用,例如:
C:\app\...in\sqlldr.exe userid=user/pass
control="DATA_DATA_TABLE.ctl" log="DATA_DATA_TABLE.log"
bad = "DATA_DATA_TABLE.bad" discard ="DATA_DATA_TABLE.dsc"
data="AI_SLA_DATA_DATA_TABLE.ldr"