oracle sqlldr when使用方法

zk5168 2008-06-24 05:37:47
各位高手 我用sqlldr只想导入
字段 a='1' 或者 a='2' 的数据
如下红字地方我应该怎么写 谢谢

OPTIONS(ERRORS=2147483647,Direct=true,rows=120000)
unrecoverable
Load DATA
infile "文本.txt"
Append INTO TABLE table1

when a= '1' a='2'

FIELDS TERMINATED BY ','
(a char,b char)
...全文
1077 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonboat1120 2008-07-18
  • 打赏
  • 举报
回复
也遇到这个问题!when好像只能去固定位置的字符 when(x:y) = ''来判断,但是对于不定长的字段,就没有办法处理!
不知道有没有其他的方法,希望高人赐教!
wffffc 2008-06-25
  • 打赏
  • 举报
回复
这样的话sqlldr好像搞不定吧,看看外部表吧
zk5168 2008-06-25
  • 打赏
  • 举报
回复
谢谢 楼上的朋友 你的方法对我不合适
我不想再执行一个删除命令

OPTIONS(ERRORS=2147483647,Direct=true,rows=120000)
unrecoverable
Load DATA
infile "文本.txt"
Append INTO TABLE table1

(when a= '北京' a='上海' )

FIELDS TERMINATED BY ','
(a char,b char)
wffffc 2008-06-24
  • 打赏
  • 举报
回复
load data
infile *
into table t
fields terminated by ','
(empno "case when :empno>7600 then :empno end",
ename)
begindata
7369,SMITH
7499,ALLEN
7521,WARD
7566,JONES
7654,MARTIN
7698,BLAKE
7782,CLARK
7788,SCOTT
7839,KING
7844,TURNER
7876,ADAMS
7900,JAMES
7902,FORD
7934,MILLER
导入后的结果:
SQL> select * from t;

EMPNO ENAME
---------- ----------
SMITH
ALLEN
WARD
JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER

已选择14行。
然后你可以把为空的手动删除

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧