2014-09-13 56 views
0

我在導入數據時使用remap_data選項存在問題。 場景:在oracle中抽取數據

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) 

每一行。可能嗎 ?

+0

爲什麼不直接將'fullname'作爲一個虛擬列,如果總是將其他兩個連接在一起呢? – 2014-09-13 10:49:36

+0

可以用你的表格中正確的語法數據來闡述它嗎? – 2014-09-13 10:58:29

回答

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

您不需要更新現有的行或導出/導入;查詢時會自動生成虛擬值。根據使用方式的不同,您可能會像添加其他列一樣在其上添加索引。