【问题标题】:Setting default column values for Sql Developer Import为 Sql Developer 导入设置默认列值
【发布时间】:2017-03-29 07:06:15
【问题描述】:

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

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。

(我只能坚持使用这个导入选项,我不允许使用任何其他方法)。 提前致谢。

【问题讨论】:

标签: sql oracle oracle11g oracle-sqldeveloper plsqldeveloper


【解决方案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 developer 作为导入方法导入时选择 SQL*Loader 实用程序)并在控制文件中定义默认值。 default value in control file Load with SQLoader via SQLDeveloper

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

【讨论】:

  • 感谢您的回复。抱歉,我无权更改表格。
  • @user1547554 我已经向您发布了其他选项
  • 谢谢,我认为这些额外的选项可以完成这项工作。我会试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-17
  • 2011-10-31
  • 2016-07-19
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多