5
我有以下要求: 其實我有txt文件我需要壓縮此文件並使用oracle UTL_COMPRESS包創建gz文件。 我需要在Oracle 11g的Unix機器上實現這個功能。 我已經嘗試了下面的代碼,它在某種程度上工作。我的意思是它正在壓縮小尺寸文件。如何使用UTL_COMPRESS包壓縮txt文件並在oracle 11g中使用unix創建gz文件?
DECLARE
f utl_file.file_type;
compressed BLOB;
data_b BFILE;
BEGIN
f := UTL_FILE.fopen ('DIR_UTL_COM_TEST', 'Test1.gz', 'wb');
data_b := BFILENAME ('DIR_UTL_COM_TEST','pk_intibuy_pkb.txt');
DBMS_LOB.FILEOPEN (data_b, DBMS_LOB.LOB_READONLY);
DBMS_LOB.createtemporary (compressed, false);
compressed := UTL_COMPRESS.lz_compress (data_b,6);
UTL_FILE.put_raw(f, compressed, true);
UTL_FILE.fclose (f);
DBMS_LOB.FILECLOSE (data_b);
DBMS_LOB.freetemporary (compressed);
END;
但是,這段代碼不能壓縮大文件。 如果有人在oracle 11g中實現了這個功能,請幫忙。 會很感激。 錯誤消息:
Error report:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 11 06502. 00000 - "PL/SQL: numeric or value error%s"
你看到的具體結果是什麼?錯誤信息? – mmmmmpie 2014-11-06 16:40:39
感謝您的回覆。 即將發生以下錯誤消息。 錯誤報告: ORA-06502:PL/SQL:數字或值錯誤 ORA-06512:在line 11 06502. 00000 - 「PL/SQL:數字或值錯誤%的」 *原因: *行動: – Rohit 2014-11-06 16:58:15
有趣的是,我複製了你的代碼,它運行得很好。我創建了目錄'DIR_UTL_COM_TEST',用一些測試數據創建了'pk_intibuy_pkb.txt'文件,並運行它。你能否確認你的模式對目錄有可見性,在UTL_FILE過程中執行,並且該txt文件存在? – mmmmmpie 2014-11-06 17:37:48