错误信息在下面,我用的是oracle 9.0.1.0.0
CREATE OR REPLACE PROCEDURE vva_dump_blob(pino NUMBER,poname VARCHAR2) AS
    l_file UTL_FILE.FILE_TYPE;
    l_buffer    RAW(32767);
    l_amount    BINARY_INTEGER := 32767;
    l_pos     INTEGER :=1;
    l_blob    BLOB;
    l_blob_len    INTEGER;
BEGIN
    SELECT  METHOD_DLL INTO  l_blob
    FROM    METHOD
    WHERE   METHOD_NO = pino;
    
    l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
    l_file := UTL_FILE.FOPEN('BLOBDIR',poname,'w',32767);
    
    WHILE l_pos < l_blob_len    LOOP
    DBMS_LOB.READ(l_blob,l_amount,l_pos,l_buffer);
    UTL_FILE.PUT_RAW(l_file, l_buffer, TRUE);
    l_pos :=l_pos+l_amount;
    END LOOP;
    UTL_FILE.FCLOSE(l_file);
    
    EXCEPTION
    WHEN OTHERS THEN
    IF UTL_FILE.IS_OPEN(l_file) THEN
    UTL_FILE.FCLOSE(l_file);
    END IF;
    RAISE;
    END; 
警告: 创建的过程带有编译错误。PROCEDURE VVA_DUMP_BLOB 出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
18/4     PL/SQL: Statement ignored
18/13    PLS-00302: 必须说明 'PUT_RAW' 组件警告: 创建的过程带有编译错误。