SQL加载程序控制文件

时间:2011-07-11 17:45:07

标签: sql oracle sql-loader controlfile

我有这个加载器控制文件。

LOAD DATA
REPLACE
INTO TABLE TEST
WHEN TEST_CD != 'A' AND TEST_CD = 'B' AND TEST_TYPE_CD = 15

目前它在TEST_CD ='B'和TEST_TYPE_CD = 15时加载数据,但现在我想修改它,以便当TEST_CD ='B'以及test_type_cd = 15时......我不想加载所有Test_type_cd 15 ..我想只在它满足两个条件时加载..只需保持它周围的大括号就可以了.Plz有人让我知道如何修改它..

我认为每个人都对我需要的东西感到困惑。我希望第一个条件满足以及第二个和第三个条件作为1条件不单独行动。例如,如果test_cd不等于A而不是加载数据但是第二个和第三个条件应该作为一个整体..当test_cd = B和test_type_cd是15比加载数据..我不希望test_type_cd申请除B以外的任何其他test_cd ..我有5个那些test_cd ABCD E ..我只想要B应用test_type_cd = 15 ..

2 个答案:

答案 0 :(得分:2)

尝试

LOAD DATA
REPLACE
INTO TABLE TEST
WHEN TEST_CD = 'B' AND TEST_TYPE_CD = 15 -- load everything that is b and 15
INTO TABLE TEST
WHEN TEST_CD != 'A' AND TEST_CD != B -- load everything that is not a and not b (because it is loaded above)

答案 1 :(得分:0)

那么,你希望它在EITHER条件为真时加载,不一定是两个条件?

WHEN TEST_CD != 'A' AND (TEST_CD = 'B' OR TEST_TYPE_CD = 15)

可能会满足您最初问题的断裂英语。