当前位置: 首页 > 知识库问答 >
问题:

如何在sql加载器中使用多个条件?

沈茂
2023-03-14

我有一个以下格式的csv文件,第一列是id,第二列是name,第三列是Dept,这个文件有700K多行。我试图通过使用SQL Loader在oracle表中只移动部门10、90、30和70的详细信息。

100,AAA,10
101,BBB,10
102,CCC,20
103,DDD,30
104,EEE,40
105,FFF,50
106,GGG,70
107,HHH,60
108,III,20
109,JJJ,80
110,KKK,90
111,LLL,90
112,MMM,50
113,NNN,80
114,OOO,10
create table DEPT_LOADER(
    ID NUMBER
    ,NAME VARCHAR2(100)
    ,DEPT number
);
    load data
    infile 'F:\SQL_Loader\dept.csv'
    badfile 'F:\SQL_Loader\dept.bad'
    discardfile 'F:\SQL_Loader\dept.dsc'
    insert 
    into table DEPT_LOADER
    when dept = '10' or  dept = '90' or dept = '30' or  dept = '70'
    fields terminated by ','
    (id,name,dept)
    SQL*Loader-350: Syntax error at line 7.
    Expecting "(", found "or".
    when dept = '10' or  dept = '90' or dept = '30' or  dept = '70'

请帮帮我。如何在控制文件中使用多个条件

共有1个答案

郎玮
2023-03-14

SQL*Loader不允许在When子句中使用运算符。您应该使用多个insert INTO DEPT_LOADER

你的控制文件应该像;

LOAD DATA
INFILE 'F:\SQL_Loader\dept.csv'
BADFILE 'F:\SQL_Loader\dept.bad'
DISCARDFILE 'F:\SQL_Loader\dept.dsc'
INSERT 
INTO TABLE DEPT_LOADER WHEN DEPT = '10'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)
INTO TABLE DEPT_LOADER WHEN DEPT = '90'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)
INTO TABLE DEPT_LOADER WHEN DEPT = '30'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)
INTO TABLE DEPT_LOADER WHEN DEPT = '70'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)
 类似资料:
  • 我想通过传递一个网址来加载多个图像。与本教程不同http://www.learn2crack.com/2014/06/android-load-image-from-internet.html其中只有一个图像被下载并使用img.setImageBitmap(图像)查看;我的问题是如何将url发送到一个方法以加载该url的图像,该方法返回一个图像,然后我在图像视图中显示它。

  • 问题内容: 我正在zend框架中逐步学习AJAX。我将此问题用作第一步,并且该问题的可接受答案对我有用。现在,我想使用JSON加载多个DIV。这是我的计划。 IndexController.php: index.phtml: car.phtml : bike.phtml: ajax.js: 我想你已经明白了。当单击任何带有class =’ajax’的链接时,表示它的AJAX调用。phtml文件(c

  • 我试了几个解决方案,为了前任。HTTPS/SSL上的Java客户端证书或获取javax.net.ssl.sslHandShakeException:收到致命警报:handshake_failure错误,从.p12文件中收到的证书和从浏览器导出的证书都不起作用... 更新2: 我尝试了以下方法:https://stackoverflow.com/a/11908693/1215791,并设法访问了Se

  • 我的场景是在单个查询中在顶点之间添加多条边: 假设下面的节点:这些是我拥有的标签和ID 用户: 4100 歌曲: 4200 4355 4676 我必须在这些顶点之间建立边 我们通常可以通过在节点之间创建单条边来实现。如果我们想一次在50多个顶点之间创建边,这不是一种有效的方法。我正在使用Tinkerpop 3.0.1。