Проверка 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 для значения, чтобы преобразовать его в целочисленное значение, или как хотите, чтобы представлять логические значения.
Примеры в документации.