length()是對于char和varchar2的字段才適用的。DBMS_LOB.GETLENGTH (lob_loc IN BLOB)
RETURN INTEGER;DBMS_LOB.GETLENGTH (lob_loc IN CLOB CHARACTER SET ANY_CS)
RETURN INTEGER;DBMS_LOB.GETLENGTH (file_loc IN BFILE)
RETURN INTEGER;

解决方案 »

  1.   

    Examples
    CREATE OR REPLACE PROCEDURE Example_11a IS
        lobd        BLOB;
        length      INTEGER;
    BEGIN
        -- get the LOB locator
        SELECT b_lob INTO lobd FROM lob_table
            WHERE key_value = 42;
        length := dbms_lob.getlength(lobd);
        IF length IS NULL THEN
            dbms_output.put_line('LOB is null.');
        ELSE
            dbms_output.put_line('The length is '
                || length);
        END IF;
    END;CREATE OR REPLACE PROCEDURE Example_11b IS
    DECLARE
        len INTEGER;
        fil BFILE;
    BEGIN
        SELECT f_lob INTO fil FROM lob_table WHERE key_value = 12; 
        len := dbms_lob.length(fil);
    END;http://gigabase.idi.ntnu.no/oradoc/appdev.901/a89852/dbms_16b.htm#1008995
      

  2.   

    Examples
    CREATE OR REPLACE PROCEDURE Example_11a IS
        lobd        BLOB;
        length      INTEGER;
    BEGIN
        -- get the LOB locator
        SELECT b_lob INTO lobd FROM lob_table
            WHERE key_value = 42;
        length := dbms_lob.getlength(lobd);
        IF length IS NULL THEN
            dbms_output.put_line('LOB is null.');
        ELSE
            dbms_output.put_line('The length is '
                || length);
        END IF;
    END;CREATE OR REPLACE PROCEDURE Example_11b IS
    DECLARE
        len INTEGER;
        fil BFILE;
    BEGIN
        SELECT f_lob INTO fil FROM lob_table WHERE key_value = 12; 
        len := dbms_lob.length(fil);
    END;http://gigabase.idi.ntnu.no/oradoc/appdev.901/a89852/dbms_16b.htm#1008995