在oracle中查找列中最长行的长度

ele*_*eep 16 sql oracle plsql oracle-sqldeveloper

有没有人知道是否有办法找到Oracle中列中最长行的长度?

基本上我需要得到最长行的长度,然后使用该长度加上1 SUBSTR来使列的输出比最长的字符串长一个字符.

谢谢

编辑:

感谢您的建议.

但是,这种MAX(LENGTH(column_name)) AS MAXLENGTH方法给了我想要的数字但是当我尝试使用它时,SUBSTR(column_name,1, MAXLENGTH)我得到一个无效的标识符错误.

所以我做了一个函数来返回我想要的数字然后使用:

SUBSTR(column_name,1,maxlengthfunc)
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

SUBSTR(NAME,1,MAXLENGTHFUNC)
Run Code Online (Sandbox Code Playgroud)

而不是:

SUBSTR(NAME, 1, 19)
Run Code Online (Sandbox Code Playgroud)

并没有像我需要的那样缩小输出列的大小.

RTRIM(name)||' '
Run Code Online (Sandbox Code Playgroud)

在SQL开发人员中没有为我做任何事情.

谢谢.

APC*_*APC 30

这将适用于VARCHAR2列.

select max(length(your_col))
from your_table
/
Run Code Online (Sandbox Code Playgroud)

CHAR列显然都是相同的长度.如果列是CLOB,则需要使用DBMS_LOB.GETLENGTH().如果它很长,那真的很棘手.


sea*_*alz 5

SELECT max(length(col_name)+1) as MyOutput
FROM table_Name
Run Code Online (Sandbox Code Playgroud)

正常输出看起来像

   MyOutput
1     5
Run Code Online (Sandbox Code Playgroud)

新的输出看起来像

   MyOutput
1     6
Run Code Online (Sandbox Code Playgroud)


Red*_*ter 3

select max(length(MyColumn)) as MaxLength
from MyTable
Run Code Online (Sandbox Code Playgroud)