This is for LONG. For LONG RAW, you could use utl_raw.length or use a C or Java program to read it and calculate the length.
CREATE OR REPLACE FUNCTION l_length(cTabName varchar2, cColName varchar2, cRowid varchar2) RETURN NUMBER IS cur_id integer; buff varchar2(32767); len integer; offset integer; v_length integer; stmt varchar2(500); ret integer; BEGIN stmt := ' SELECT '|| cColName || ' FROM ' || cTabName || ' WHERE rowid = '||''''||cRowid||''''; cur_id := dbms_sql.open_cursor; dbms_sql.parse(cur_id, stmt, dbms_sql.NATIVE); dbms_sql.define_column_long(cur_id, 1); ret := dbms_sql.execute(cur_id); IF (dbms_sql.fetch_rows(cur_id) > 0 ) THEN offset := 0; len := 0; LOOP dbms_sql.column_value_long(cur_id, 1,32767, offset, buff, v_length); len := len + v_length; EXIT WHEN v_length < 32767; offset := offset + v_length; END LOOP; END IF; dbms_sql.close_cursor(cur_id); return( len ); END; / -----Original Message----- Sent: Wednesday, February 05, 2003 3:05 PM To: Multiple recipients of list ORACLE-L Not easy. If your LONG is shorter than 32767, then you can, in a PL/SQL function, fetch it into a VARCHAR2 of this size (allowed in PL/SQL) and aplly LENGTH() to this VARCHAR2. Assuming the suitable Oracle version, I think there is somewhere a function to convert LONGs to CLOBs - to which you can apply a function. With Pro*C or the OCIs, you can derived the length from the error you get when fetching into too small a buffer ... -- Regards, Stephane Faroult Oriole Software -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Stephane Faroult INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Richard Ji INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).