我想在本地命令执行sqlldr 导远程linux环境下的txt文件到远程linux系统下的oracle数据库内。
a.ctl文件如下:
Load DATA
INFILE '/srv/member.txt'
INTO TABLE member
(id Integer EXTERNAL TERMINATED BY whitespace,username char TERMINATED BY whitespace,idcard char TERMINATED BY whitespace)命令如下:
$sqlldr nydw_dev/nydw_dev@dw control='e:\c.ctl' log='e:\c.log' direct=true;执行后日志报错:SQL*Loader: Release 11.1.0.6.0 - Production on 星期一 11月 10 17:10:05 2008Copyright (c) 1982, 2007, Oracle. All rights reserved.控制文件: e:\c.ctl
数据文件: /srv/member.txt
错误文件: e:\member.bad
废弃文件: 未作指定
(可废弃所有记录)要加载的数: ALL
要跳过的数: 0
允许的错误: 50
继续: 未作指定
所用路径: 直接表 MEMBER,已加载从每个逻辑记录
插入选项对此表 INSERT 生效 列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * WHT CHARACTER
USERNAME NEXT * WHT CHARACTER
IDCARD NEXT * WHT CHARACTER SQL*Loader-500: 无法打开文件 (/srv/member.txt)
SQL*Loader-553: 未找到文件
SQL*Loader-509: 系统错误: 系统找不到指定的文件。
SQL*Loader-2026: 加载因 SQL 加载程序无法继续而被终止。请问怎么回事?
a.ctl文件如下:
Load DATA
INFILE '/srv/member.txt'
INTO TABLE member
(id Integer EXTERNAL TERMINATED BY whitespace,username char TERMINATED BY whitespace,idcard char TERMINATED BY whitespace)命令如下:
$sqlldr nydw_dev/nydw_dev@dw control='e:\c.ctl' log='e:\c.log' direct=true;执行后日志报错:SQL*Loader: Release 11.1.0.6.0 - Production on 星期一 11月 10 17:10:05 2008Copyright (c) 1982, 2007, Oracle. All rights reserved.控制文件: e:\c.ctl
数据文件: /srv/member.txt
错误文件: e:\member.bad
废弃文件: 未作指定
(可废弃所有记录)要加载的数: ALL
要跳过的数: 0
允许的错误: 50
继续: 未作指定
所用路径: 直接表 MEMBER,已加载从每个逻辑记录
插入选项对此表 INSERT 生效 列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * WHT CHARACTER
USERNAME NEXT * WHT CHARACTER
IDCARD NEXT * WHT CHARACTER SQL*Loader-500: 无法打开文件 (/srv/member.txt)
SQL*Loader-553: 未找到文件
SQL*Loader-509: 系统错误: 系统找不到指定的文件。
SQL*Loader-2026: 加载因 SQL 加载程序无法继续而被终止。请问怎么回事?
到了远程就不行,是不是远程linux系统策略不允许访问所以找不到文件造成的?
明显有问题,linux下怎么能访问windows下的文件呢?
应该在windows下开个dos窗口,然后
c:\>$sqlldr nydw_dev/nydw_dev@dw control='e:\c.ctl' log='e:\c.log' direct=true