2016-09-19 33 views
0
create type person_type2 as object 
(first_name varchar(30), 
last_name varchar(30), 
age number(3)) 
/
create table person_table2 of person_type2 
/
insert into person_table2 
values (person_type2 ('john', 'doe', 50)) 
/
alter type person_type2 
add attribute (dob date), 
drop attribute age 
cascade not including table data 
/

我不明白什麼是「級聯不包括表數據」用於?我跑了劇本,看不出有或無級聯任何分歧不包括聲明,我的意思是一切都像它應該是什麼。級聯不包含表數據

回答

1

當您嘗試alter表列數據類型時,語句cascade not including table data會有所作爲。

ALTER TYPECASCADE選項傳播類型更改爲依賴typestablesCASCADE本身,讓你選擇是否convert table datanew type format爲傳播的部分選項:選擇INCLUDING TABLE DATA轉換data;選項NOT INCLUDING TABLE DATA不會轉換它。默認情況下,CASCADE選項轉換數據。無論如何,表格數據總是以最新版本的格式返回。如果表中的數據被存儲在較早類型的版本的格式,甲骨文的數據的最新版本的格式轉換返回之前,即使在該數據實際存儲格式不改變,直到數據被改寫。

在你的情況下,因爲你只是刪除一個屬性,在這裏添加一個新的真正not使用。

閱讀更多: https://docs.oracle.com/cd/B19306_01/appdev.102/b14260/adobjadv.htm#ADOBJ006