Tenho a seguinte tabela em meu banco de dados Oracle (19c):
CREATE TABLE debtors (
bankruptID NUMBER NOT NULL,
category VARCHAR2(50) NOT NULL,
lastname VARCHAR2(100),
firstname VARCHAR2(80),
birthdate DATE,
birthplace VARCHAR2(100),
constraint DEBTORS_PK PRIMARY KEY (bankruptID));
ALTER TABLE debtors ADD CONSTRAINT debtors_fk0 FOREIGN KEY (category) REFERENCES categories(BankruptCategory);
Possui uma chave primária e uma chave estrangeira para outra tabela. Para esta tabela (devedores), desejo importar dados de um arquivo csv usando sqlldr. Aqui estão os arquivos ctl e *par *:
OPTIONS (SKIP=1)
LOAD DATA
CHARACTERSET CL8MSWIN1251
INTO TABLE myschema.debtors
REENABLE DISABLED_CONSTRAINTS EXCEPTIONS EXCEPT_TABLE
FIELDS TERMINATED BY '^'
TRAILING NULLCOLS
(
bankruptID,
category,
lastname,
firstname,
birthdate date 'YYYY-MM-DD HH24:MI:SS',
birthplace
)
userid=username/password@mydb
control=debtors.ctl
log=debtors.log
bad=debtors.bad
data=debtors.csv
direct=true
Depois de concluir a tarefa, o arquivo de log informa o seguinte:
Restrição de integridade referencial/informações de gatilho: as restrições NULL, UNIQUE e PRIMARY KEY não são afetadas.
A restrição mychema.DEBTORS.DEBTORS_FK0 foi desativada e atualizada antes do carregamento. O(s) seguinte(s) índice(s) na tabela mychema.DEBTORS foram processados: index mychema.DEBTORS_PK carregado com sucesso com 896 chaves
A tabela mychema.DEBTORS não possui tabela de exceção de restrição. Nenhuma restrição CHECK, REFERENTIAL foi reativada após o carregamento.
E a chave estrangeira (debtors_fk0) fica desativada. Como você pode ver no arquivo *ctl *, tenho a cláusula REENABLE, mas parece não estar funcionando. Você poderia me ajudar a entender qual é o problema? Eu quero que ele reative a restrição automaticamente
Criei uma tabela EXCEPT_TABLE para armazenar todas as exceções, mas não adiantou