我在导入数据时使用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) 对于每一行。有可能吗?
发布于 2014-09-13 19:38:05
如果全名始终是名字和姓氏的串联,而不是尝试手动提供和维护,则可以使用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 vermaSQL Fiddle demo。
您不需要更新现有行或导出/导入;查询时会自动生成虚拟值。根据它的使用方式,您可能会受益于像其他列一样在其上添加索引。
https://stackoverflow.com/questions/25821287
复制相似问题