2016-11-15 87 views
3

我有以下日志表在我的数据库:设置缺省列值

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中存在的Import工具(通过右键单击表名称)将此数据导入到日志表中时,它不允许我为创建的日期设置任何默认值,并且应用程序ID,因为这些选项被禁用,并且插入失败,因为这些列不为空。

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

(我只能坚持使用此导入选项,我不允许使用任何其他方法)。 在此先感谢。

+0

看到这个http://www.orafaq.com/wiki/SQL%2aLoader_FAQ –

+0

@AkshayTilekar那是通过Sql * Loader,而我的要求是与Sql Developer中的导入选项。 – user1547554

回答

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'); 

如果您没有访问改变表,请通过SQLLOADER使用进口(在从SQL开发的导入方法选择SQL * Loader实用程序导入),并定义控制文件中的默认值。 default value in control file Load with SQLoader via SQLDeveloper

或选项2.定义external table到您的csv文件。从外部表中选择替换具有某些值的空值并插入。

+0

感谢您的回复。对不起,我无权修改表格。 – user1547554

+0

@ user1547554我已经发布了其他选项 – Kacper

+0

谢谢,我认为这些附加选项可以完成这项工作。我会试试看。 – user1547554