Solved

tablespace location

Posted on 2012-12-30
13
488 Views
Last Modified: 2013-01-18
How would I find the tablespace of a particular schema?

Please help..
0
Comment
Question by:walkerdba
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 2
  • +3
13 Comments
 
LVL 22

Accepted Solution

by:
Steve Wales earned 100 total points
ID: 38731357
If you're looking for the default tablespace name for a user:

select default_tablespace from dba_users where username = 'YOUR_USER';

If you're looking for all the tablespaces that a user may have quotas on:

select tablespace_name from dba_ts_quotas where username = 'YOUR_USER';
0
 
LVL 77

Assisted Solution

by:slightwv (䄆 Netminder)
slightwv (䄆 Netminder) earned 100 total points
ID: 38731524
To ad to the post above:  A schema in Oracle is just a user that owns objects.  These objects can be in any tablespace.  If you do not declare a specific tablespace when you create the object, it is created in the users 'default' tablespace.

You typically create objects in different tablespaces.  Like one for tables and one for indexes.

You can even create tablespaces with different block sizes for specific objects that may get a performance gain from it.
0
 

Author Comment

by:walkerdba
ID: 38731912
SQL> select tablespace_name from dba_ts_quotas where username = 'SCOTT';

no rows selected

SQL> select tablespace_name from dba_ts_quotas where username ='SCOTT';

no rows selected

SQL>

Why it is like this.....?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 22

Expert Comment

by:Steve Wales
ID: 38731994
This means that SCOTT has no tablespace as his default and has no quotas on any tablespaces.

If you want to see the tablespaces you do have:

select * from dba_tablespaces;
select * from dba_data_files;
select * from dba_temp_files;
0
 

Author Comment

by:walkerdba
ID: 38732059
How can a schema sit nowhere without tablespace?
Scott should be somewhere right?

My mission is to find out which tablespace SCOTT..
0
 
LVL 35

Assisted Solution

by:johnsone
johnsone earned 100 total points
ID: 38732403
If you are looking for the tablespaces that the schema is currently using, I would use this:

SELECT DISTINCT TABLESPACE_NAME
FROM DBA_SEGMENTS
WHERE OWNER = 'SCOTT';

If the user has the UNLIMITED TABLESPACE privilesge, then there will be no records in DBA_TS_QUOTAS and there doesn't need to be.
0
 
LVL 22

Expert Comment

by:Steve Wales
ID: 38732676
As slightwv mentioned, a schema in Oracle is just a user that owns objects.

It is possible to create a user that does not have any objects (and hence, all of the above queries would return nothing).

johnsone also makes a valid point, you'd need to check dba_sys_privs (to see which users have that system privilege):

select * from dba_sys_privs where privilege = 'UNLIMITED TABLESPACE';

It sounds like you misunderstand what a schema is in Oracle.  It is a different concept to SQL Server, for example.

It is very possible to have users without objects in Oracle.
0
 
LVL 35

Assisted Solution

by:Mark Geerlings
Mark Geerlings earned 100 total points
ID: 38733130
A tablespace in Oracle is a physical place (one or more files on disk) that can contain tables and indexes.  A schema is a logical concept in Oracle that by default doesn't correspond to any physical tablespaces.  You can assign a default tablespace to a schema, but that schema is not necessarily limited to creating objects only in its default tablespace.  For example, you can grant a schema the "unlimited tablespace" privilege.  That allows the schema to create objects in any tablespace.
0
 
LVL 37

Assisted Solution

by:Geert Gruwez
Geert Gruwez earned 100 total points
ID: 38735935
does user SCOTT actually exist in your database ?

check following query results:

select * from dba_users where username = 'SCOTT';
0
 

Author Comment

by:walkerdba
ID: 38765232
I've requested that this question be closed as follows:

Accepted answer: 0 points for walkerdba's comment #a38731912

for the following reason:

yes
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 38765233
>> closed by accepting walkerdba's comment #a38731912 (0 points) as the solution for the following reason:  yes

I'm afraid I'll have to object to the way you want to close this.
Please accept the post or posts that assisted you in answering the question.

I suggest a split of the points since it appears several posts helped.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
Using SQL Scripts we can save all the SQL queries as files that we use very frequently on our database later point of time. This is one of the feature present under SQL Workshop in Oracle Application Express.
This video explains at a high level with the mandatory Oracle Memory processes are as well as touching on some of the more common optional ones.
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question