Find the length of the longest row in a column in oracle

后端 未结 9 1553
野趣味
野趣味 2020-12-16 14:19

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

9条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-16 14:21

    For use the max in column definition, i suggest the right approach:

    create or replace FUNCTION F_GET_MAX_LENGTH_TAB_COLUMN
    (
      pCOLUMN_NAME  IN VARCHAR2 
    , pTABLE_NAME   IN VARCHAR2 
    , pOWNER        IN VARCHAR2 
    ) RETURN NUMBER AS 
      vLength NUMBER;
    BEGIN
    
      BEGIN
        SELECT  DATA_LENGTH 
        INTO    vLength
        FROM ALL_TAB_COLUMNS 
        WHERE 
            COLUMN_NAME = pCOLUMN_NAME 
        AND TABLE_NAME  = pTABLE_NAME 
        AND OWNER       = pOWNER
        ;
      EXCEPTION
        WHEN NO_DATA_FOUND THEN
          vLength := 0;
      END;
    
      RETURN vLength;
    END F_GET_MAX_LENGTH_TAB_COLUMN;
    

    Just call the function:

    SELECT F_GET_MAX_LENGTH_TAB_COLUMN(
        pCOLUMN_NAME => 'AGN_ST_NOME', 
        pTABLE_NAME  => 'GLO_AGENTES', 
        pOWNER => 'MGGLO' ) 
    FROM DUAL;
    

提交回复
热议问题