这两天群里在讨论一个关于clob字段长度和大小计算的问题,搜了一下网上确实没现成计算clob的函数。现提供一个计算clob字段大小的函数,以便各位同学使用。
CREATE OR REPLACE FUNCTION GET_CLOB_LENGTHB(P_STRING IN CLOB) RETURN INTEGER IS C_MAX_LENGTH CONSTANT INTEGER := 10922; I INTEGER; V_LENGTH INTEGER; V_LENGTHB INTEGER; V_STRING VARCHAR2(32767); BEGIN V_LENGTH := NVL(DBMS_LOB.GETLENGTH(P_STRING), 1); I := 1; V_LENGTHB := 0; WHILE (I <= V_LENGTH) LOOP V_STRING := DBMS_LOB.SUBSTR(P_STRING, C_MAX_LENGTH, I); V_LENGTHB := V_LENGTHB + LENGTHB(V_STRING); I := I + C_MAX_LENGTH; END LOOP; RETURN NVL(V_LENGTHB, 0); END;