Does anybody know if there is a way to find what the length of the longest row in a column in Oracle?
Basically I need to get the length of the longest row and then use that length plus 1
with SUBSTR
to make the output of the column one character longer than the longest string.
Thanks
EDIT:
Thanks for the advice.
However, the MAX(LENGTH(column_name)) AS MAXLENGTH
approach gives me the number I want but when I try to use it with SUBSTR(column_name,1, MAXLENGTH)
I get an invalid identifier error.
SO I made a function to return the numberI wanted then used:
SUBSTR(column_name,1,maxlengthfunc)
This gave me the following output:
SUBSTR(NAME,1,MAXLENGTHFUNC)
Rather than:
SUBSTR(NAME, 1, 19)
And it didn't shrink the output column size like I needed.
Also
RTRIM(name)||' '
didn't do anything for me in SQL developer.
Thanks.
This will work with VARCHAR2 columns.
select max(length(your_col))
from your_table
/
CHAR columns are obviously all the same length. If the column is a CLOB you will need to use DBMS_LOB.GETLENGTH(). If it's a LONG it's really tricky.