【发布时间】:2011-07-11 17:45:07
【问题描述】:
我有这个加载器控制文件。
LOAD DATA
REPLACE
INTO TABLE TEST
WHEN TEST_CD != 'A' AND TEST_CD = 'B' AND TEST_TYPE_CD = 15
目前它在 TEST_CD = 'B' AND TEST_TYPE_CD = 15 时加载数据,但现在我想修改它,以便当 TEST_CD = 'B' 以及 test_type_cd = 15 时也是如此。我不想在它的时候加载所有 Test_type_cd 15 ..我只想在满足这两个条件时才加载..只要把大括号放在它周围就可以了..请有人告诉我如何修改它..
我想每个人都对我需要的东西感到困惑..我希望第一个条件满足以及第二个和第三个条件作为一个条件不单独行动..例如,如果 test_cd 不等于 A 则加载数据但第二个和第三个条件应该作为一个整体..当 test_cd = B 并且 test_type_cd 是 15 而不是加载数据..我不希望 test_type_cd 申请除 B 之外的任何其他 test_cd ..我有 5 个 test_cd A B C D E ..我只希望 B 应用 test_type_cd = 15..
【问题讨论】:
-
您的意思是要加载数据 TEST_CD = 'B' 或 TEST_TYPE_CD =5 或两者都加载?
-
您的代码已经确保满足这两个条件。
-
我想在 test_cd = 'B' 时加载数据,如果 test_type_cdis 也为 15 则加载该行.. 当它同时满足两个条件时.. 现在它不关心 test_cd 何时为 b 测试类型 cd 为 15与否.. 如果它满足一个它的加载
-
另外,
TEST_CD != 'A'是不必要的,因为TEST_CD = 'B'。 -
你能仔细检查一下其他东西没有坏吗?因为你的语法是正确的。您已经在使用
AND运算符而不是OR运算符,因此它不可能按照您描述的方式运行。
标签: sql oracle sql-loader controlfile