错误信息在下面,我用的是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' 组件警告: 创建的过程带有编译错误。
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' 组件警告: 创建的过程带有编译错误。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货