2

我正在使用 sql loader 加载 csv 文件。其中一列应该是布尔值。但 Oracle 不支持布尔数据类型。所以我需要添加验证或约束。当我在列上添加约束时,它在直接加载期间被忽略,因此之后需要手动干预来整理。如果我尝试在控制文件中使用验证,则 sql 加载器不支持 OR 运算符,只支持 AND。所以我不能做 WHEN colA='true' 或 colA='false'

我看到一些网站说要尝试类似下面的内容,但是第一个 WHEN 子句是唯一接受的,而忽略了第二个加载。

OPTIONS (direct=true)
load data
TRUNCATE 
INTO TABLE TABLE_A
    WHEN PAY='false'
    FIELDS TERMINATED BY ','
    ( ID, NAME, PAY)
INTO TABLE TABLE_A
    WHEN PAY='true'
    FIELDS TERMINATED BY ','
    ( ID, NAME, PAY)

任何人都可以提供任何帮助。谢谢

4

1 回答 1

0

您可以使用 SQL*Loader 字段列表中的 SQL 运算符对值执行 CASE 或 DECODE 以将其转换为整数,或者您想要表示布尔值。

文档中的示例。

于 2013-04-26T08:44:11.440 回答