Cascade and Cascade include table data

Hi Guys,

I read about cascade and Cascade include table data for altering Oracle types in Oracle Documentation.

But I am not able to understand.

Can someone explain with a small example.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

And where did you read that?
sakthikumarAuthor Commented:
I read like cascase will change in all dependent objects, can't understand exactly. what will be changed.
suppose if we are increasing the width of  a type attribute and the type is used in a table.

what will be changed in the table, we are just referring the type in the table structure and when the type is changed
what have to be changed in the table.?
slightwv (䄆 Netminder) Commented:
Based on the 10g docs, there is an example:

Basically if you create a type that is used in tables and alter the type, how do you want to handle the changes for the dependent objects?
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

sakthikumarAuthor Commented:
how do you want to handle the changes for the dependent objects?

what changes for dependent objects, a type is changed and is referred in a table,
in that case,what change is required in dependent objects.
slightwv (䄆 Netminder) Commented:
Then it sounds like you want  cascade include.
sakthikumarAuthor Commented:
For eg:

project_no NUMBER(2),
title      VARCHAR2(35),
cost       NUMBER(7,2));


CREATE TABLE department (
dept_id  NUMBER(2),
name     VARCHAR2(15),
budget   NUMBER(11,2),
projects ProjectList);

in this case, how can i see the metadata of the type "ProjectList" stored in department table. or in which view I can find the definition of this.

Just understand the example in your link.
sakthikumarAuthor Commented:
just want to understand the example in your link.
slightwv (䄆 Netminder) Commented:
I don't know the exact view where you can see the actual definition information.

You can get the ddl with:
select dbms_metadata.get_ddl('TYPE','PROJECTLIST') from dual;

The one view I could find that shows you some info is:
select * from DBA_TYPES where type_name='PROJECTLIST';

I looked a little but could not find the view that showed the actual information about 'what' it is.
sakthikumarAuthor Commented:
OK. In the link it was mentioned like, whenever we include cascade for alter type.

all the metadata associated with dependent objects will be changed.

in this case just like to see the meta data of department table which stores the columns of the type.
slightwv (䄆 Netminder) Commented:
Searching through doc link you posted, you'll find:
These changes mainly involve updating the tables' metadata (information about a table's structure, describing its columns and their types) and can be done quickly. However, the data in those tables must be updated to the format of the new type version as well. Updating this data can be time-consuming if there is a lot of it, so the ALTER TYPE command has options to let you choose whether to convert all dependent table data immediately or to leave it in the old format to be converted piecemeal as it is updated in the course of business.

The CASCADE option for ALTER TYPE propagates a type change to dependent types and tables. See "ALTER TYPE Statement for Type Evolution". CASCADE itself has options that let you choose whether to convert table data to the new type format as part of the propagation: the option INCLUDING TABLE DATA converts the data; the option NOT INCLUDING TABLE DATA does not convert it. By default, the CASCADE option converts the data. In any case, table data is always returned in the format of the latest type version. If the table data is stored in the format of an earlier type version, Oracle converts the data to the format of the latest version before returning it, even though the format in which the data is actually stored is not changed until the data is rewritten.

I'm even a little confused about how you can update an object but not the data in the object.  Doesn't make sense to me either.

This might be a better question for Oracle Support.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.