我的 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);
它有另一个表的主键和外键。我想使用 sqlldr 从 csv 文件导入数据到此表(债务人)中。以下是ctl和 *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
完成任务后,日志文件显示以下内容:
参照完整性约束/触发器信息:NULL、UNIQUE 和 PRIMARY KEY 约束不受影响。
约束 mychema.DEBTORS.DEBTORS_FK0 在加载之前已禁用且未验证。表 mychema.DEBTORS 上的以下索引已处理:索引 mychema.DEBTORS_PK 已成功加载 896 个键
表 mychema.DEBTORS 没有约束异常表。加载后没有重新启用 CHECK、REFERENTIAL 约束。
并且外键 (debtors_fk0) 被禁用。正如您在 *ctl *file 中看到的,我有 REENABLE 子句,但它似乎不起作用。您能帮我了解问题所在吗?我希望它自动重新启用约束
我创建了一个 EXCEPT_TABLE 表来存储所有异常,但这没有帮助