数据在oracle中抽水

时间:2014-09-13 08:24:11

标签: database oracle oracle11gr2

我在导入数据时使用remap_data选项的问题。 场景:

 create table test(fname varchar(20), lname varchar(20),fullname varchar(40));
 insert into test values('govind', 'verma','');

错误地我忘了以全名插入数据(我有大量数据所以我无法执行更新操作所以我去了数据泵)我使用expdp导出数据但是在加载时我想执行操作使用remap_data选项以这种方式输入该重映射函数应该是fname和lname但是想在

中修改
fullname=concat(fname,':',lname)  
每行

。可能吗 ?

1 个答案:

答案 0 :(得分:1)

如果全名始终是名字和姓氏的串联,而不是尝试手动提供和维护,则可以使用a virtual column代替:

alter table test drop column fullname;
alter table test add fullname generated always as (fname||' '||lname);

select * from test;

FNAME       LNAME       FULLNAME
----------- ----------- ------------------
govind      verma       govind verma

SQL Fiddle demo

您无需更新现有行或导出/导入;查询时自动生成虚拟值。根据它的使用方式,您可能会像在任何其他列上一样添加索引。