我的数据库中有以下日志表:
FROM_PARTY_ID VARCHAR2(15 CHAR) Not Null
TO_PARTY_ID VARCHAR2(15 CHAR) Not Null
CREATED_DT DATE Not Null
UPDATED_DT DATE Null
NO_OF_TRIES NUMBER(3,0) Null
APPLICATION_ID VARCHAR2(15 CHAR) Not Null
现在,我想将一个.CSV文件中的数据导入此日志表,CSV文件的结构为:
Old_PartyID,New_PartyID,CREATED_DT,UPDATED_DT,NO_OF_TRIES,APPLICATION_ID
015110044200015,099724838000015
069167641100015,099724838000015
016093943300015,099728485000015
033264160300015,099728485000015
035968914300015,099728485000015
087580324300015,099728485000015
我没有此文件中“创建日期”和“应用程序ID”列的任何数据,但是,我需要将Sysdate
作为默认Created_DT
和XYZ
作为默认值Application_ID
。
现在,当我尝试使用Sql Developer中的导入工具将此数据导入日志表时(右键单击表名),它不允许我为创建日期设置任何默认值和应用程序ID,因为这些选项被禁用,插入失败,因为这些列不为空。
有人可以指导我如何在表格中插入这些值,特别是将创建日期作为sysdate插入。
(我只是坚持使用此导入选项,我不允许采用任何其他方法)。 提前谢谢。
答案 0 :(得分:1)
您可以将表定义为:
create table tabbb (
FROM_PARTY_ID VARCHAR2(15 CHAR) Not Null,
TO_PARTY_ID VARCHAR2(15 CHAR) Not Null,
CREATED_DT DATE default sysdate,
UPDATED_DT DATE Null,
NO_OF_TRIES NUMBER(3,0) Null,
APPLICATION_ID VARCHAR2(15 CHAR) default 'XYZ' );
如果您无法访问alter table,请通过sqlloader使用import(当从sql developer导入时,导入方法选择SQL * Loader实用程序)并在控制文件中定义default。 default value in control file Load with SQLoader via SQLDeveloper
或选项2.将external table定义到您的csv文件。从外部表中选择用一些值替换空值并插入。