Aşağıdaki gereksinimim var: Aslında txt dosyasına sahibim Bu dosyayı sıkıştırmam ve Oracle UTL_COMPRESS paketini kullanarak gz dosyası oluşturmam gerekiyor. Bu işlevi, Oracle 11g ile Unix kutusunda uygulamanız gerekiyor. Aşağıdaki kodla denedim ve bir ölçüde çalışıyor. Yani küçük boyutlu dosyayı sıkıştırmak için çalışıyor.UTL_COMPRESS paketi txt dosyasını sıkıştırmak ve oracle 11 g ile unix'te gz dosyası oluşturmak için nasıl kullanılır?
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;
Ancak bu kod büyük dosyayı sıkıştırmak için çalışmıyor. Bu işlevin bazılarının Oracle 11g'de uygulanması durumunda lütfen yardım edin. Çok minnettar olurdum. Hata Mesajları:
Error report:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 11 06502. 00000 - "PL/SQL: numeric or value error%s"
Gördüğünüz sonuç nedir? Hata mesajı? – mmmmmpie
Cevabınız için teşekkürler. Aşağıdaki hata mesajı geliyor. Hata raporu: ORA-06502: PL/SQL: sayısal ya da değer hatası ORA-06512: hattında 11 06502. 00000 - "PL/SQL: sayısal ya da değer hatası% s" * Neden: * Eylem : – Rohit
İlginçtir ki kodunuzu kopyaladım ve gayet iyi çalışıyor. DIR_UTL_COM_TEST dizinini oluşturdum, bazı test verileriyle 'pk_intibuy_pkb.txt' dosyasını oluşturdum ve çalıştırdım. Şemanınızın dizinde görünebilir olduğunu, UTL_FILE yordamında yürütebildiğini ve bu txt dosyasının var olduğunu doğrulayabilir misiniz? – mmmmmpie