Проверка SQL загрузчика Oracle

Я использую загрузчик SQL для загрузки файла CSV. Один из столбцов должен быть логическим. Но Oracle не поддерживает логический тип данных. Поэтому мне нужно добавить проверку или ограничение. Когда я добавляю ограничение к столбцу, оно игнорируется во время прямой загрузки, поэтому впоследствии потребуется ручное вмешательство, чтобы привести в порядок. Если я пытаюсь использовать проверку в контрольном файле, загрузчик SQL не поддерживает оператор OR, просто AND. поэтому я не могу сделать КОГДА 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)

Может ли кто-нибудь оказать любую помощь. Спасибо

1 ответ

Вы можете использовать операторы SQL в списке полей SQL*Loader, чтобы выполнить CASE или DECODE для значения, чтобы преобразовать его в целочисленное значение, или как хотите, чтобы представлять логические значения.

Примеры в документации.

Другие вопросы по тегам