Oracle Max ID in Tables

Is there a way in PSQL to look at the tables  in (PROD1) and see...

The Maximum possible ID for that table (Or set of tables)
And the current MAX(ID) in that table(s)

This is an old Oracle Database
I have access to TOAD
Larry Bristersr. DeveloperAsked:
Who is Participating?
slightwv (䄆 Netminder) Commented:
Sorry but that doesn't tell me anything.

If you are getting some error message, please provide it.

For example, if you have a sequence called MYSEQ and exceed it's value then you should get:
ORA-08004: sequence MYSEQ.NEXTVAL exceeds MAXVALUE and cannot be instantiated

To get the max value for it:
select max_value from user_sequences where sequence_name='MYSEQ';

If you mean something different, please provide more details.
Pawan KumarDatabase ExpertCommented:
You can use below.


Open in new window

The maximum possible Id depends on the datatype you have used for Id column.

As per Oracle documentation below are the minimum and the maximum value we can store for numeric data types in Oracle.


A whole number in the range of (-2**31) to (2**31)-1.


A whole number in the range of (-2**15) to (2**15)-1.


A whole number in the range of (-2**63) to (2**63)-1.


A decimal number with up to 15 significant digits in the range of -(10**308) to +(10**308).


A decimal number with up to 7 significant digits in the range of -(10**38) to +(10**38).


A decimal number with up to 38 significant digits in the range of -(10**125) to +(10**125).
slightwv (䄆 Netminder) Commented:
Maximum possible is likely based on the data type and the maximum value it can hold.

If generated by a sequence, then it is the maximum value allowed by the sequence.

If you have a list of tables, then the above comments apply to the entire list.

'old Oracle Database' doesn't mean anything.  What version?  Please include all 4 numbers, or example

All that said, can explain just a little more about exactly what you are trying to do?
Network Scalability - Handle Complex Environments

Monitor your entire network from a single platform. Free 30 Day Trial Now!

Larry Bristersr. DeveloperAuthor Commented:
Two tables id's reached the "set " maximum allowed number

And inserts stopped

I want to know the current max ID

And the maximum allowed "ceiling" ID on the table
Pawan KumarDatabase ExpertCommented:
In this case you need to alter the datatype to the higher datatype.

Do take backup of the existing table and then try.

Alter Table table_name 
modify (  column_name LONG );

Open in new window

slightwv (䄆 Netminder) Commented:
>>modify (  column_name LONG );

NO.  Do not use a LONG data type.  They are a nightmare to work with.
Larry Bristersr. DeveloperAuthor Commented:
That gave me exactly what I needed
Pawan KumarDatabase ExpertCommented:
Yes changing datatype is bit difficult.

But sometimes we have to do it.  You can use datatype based on your requirement.
Geert GOracle dbaCommented:
really ? suggesting a long data type ?

Read the post upgrade tasks in the upgrade guide.
johnsoneSenior Oracle DBACommented:
Why would you recommend changing the data type from a numeric type to a character type?  That makes absolutely no sense at all.  Not only is it not a numeric type, but it is no longer a supported data type and hasn't been since 9i.  It hasn't even been in the documentation for quite a few versions.

Also, I am curious where you get the documentation reference for these types:


They aren't in the documentation and will generate an error if you try to use them.  INTEGER and DECIMAL just get translated to NUMBER(38).
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.

All Courses

From novice to tech pro — start learning today.