Sql * loader如何检查范围

时间:2014-06-03 11:15:51

标签: sql oracle sql-loader

我想在我的控制文件中放置范围检查,但我没有看到任何构造。 使用DEFAULTIF DEFAULTIF my_col not between 0 and 1将my_col的值设置为0.定义为number(12,8)

如果值不在指定的范围内,是否可以将其设置为-1。

2 个答案:

答案 0 :(得分:2)

您可以为该列指定任何expression。在您的情况下,您可以使用CASE语句。

样品:

FIELDS TERMINATED BY ',' 
(
my_col "case when :my_col not between 0 and 1 then -1 else to_number(:my_col) end"
)

答案 1 :(得分:1)

只要它们在双引号内,就可以使用SQL * Loader中的函数。因此,在控制文件中使用case语句。

my_col "CASE WHEN :my_col < i and :my_col > j THEN -1 ELSE :my_col END"