设置Sql Developer Import的默认列值

时间:2016-11-15 11:51:08

标签: sql oracle oracle11g oracle-sqldeveloper plsqldeveloper

我的数据库中有以下日志表:

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_DTXYZ作为默认值Application_ID

现在,当我尝试使用Sql Developer中的导入工具将此数据导入日志表时(右键单击表名),它不允许我为创建日期设置任何默认值和应用程序ID,因为这些选项被禁用,插入失败,因为这些列不为空。

有人可以指导我如何在表格中插入这些值,特别是将创建日期作为sysdate插入。

(我只是坚持使用此导入选项,我不允许采用任何其他方法)。 提前谢谢。

1 个答案:

答案 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文件。从外部表中选择用一些值替换空值并插入。