为Sql Developer导入设置默认列值

4

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

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。 (我必须坚持使用此导入选项,不允许我采用其他方法)。谢谢。

请查看此链接:http://www.orafaq.com/wiki/SQL%2aLoader_FAQ - Akshay Tilekar
@AkshayTilekar 那个是通过Sql*Loader完成的,而我的要求是使用Sql Developer中的导入选项。 - user1547554
1个回答

2

你能定义表格吗:

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 Developer导入时,选择SQL*Loader实用程序作为导入方法),并在控制文件中定义默认值。 控制文件中的默认值 通过SQLDeveloper使用SQLoader加载 或者选项2。将外部表定义到CSV文件中。从外部表选择并替换空值插入数据。

感谢您的回复。很抱歉,我无法访问修改表格。 - user1547554
@user1547554 我已经为您发布了其他选项。 - Kacper
谢谢,我认为这些额外的选项会完成工作。我会试一试。 - user1547554

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接