ORA-06502: PL/SQL: numeric or value error ORA-06512: at line XX
Bu
hatayı utl_file.put_line  paketi ile db link kullanarak remote database den aldığım kodun yazımında
yaşadım..
SQL>
declare
  2    l_clob    clob;
  3    l_tmp     long;
  4    l_offset  number := 1;
  5    lFile     UTL_FILE.file_type;
  6   begin
  7     loop
  8      select
dbms_lob.substr@DB_TESTDB(dbms_metadata.get_ddl@DB_TESTDB('PACKAGE
BODY','ILKER','PKG_ADMIN'), 4000, l_offset )
  9      into l_tmp
 10     from dual@DB_TESTDB;
 11
   
 12     exit when l_tmp is null;
 13     l_clob := l_clob || l_tmp;
 14     l_offset := l_offset + length(l_tmp);
 15    end loop;
 16   lFile := UTL_FILE.fopen('EXPORT_DIR', 'createscr.sql','w');
 17   UTL_FILE.put(lFile, l_clob);
 18   UTL_FILE.fclose(lFile);
 19
    -- dbms_output.put_line( 'l_clob length is ' || length(l_clob) );
 20
   end;
 21
   /
*
ERROR
at line 1:
ORA-06502:
PL/SQL: numeric or value error
ORA-06512:
at line 17
Normal
şartlarda ORA-06502: PL/SQL:
numeric or value error hatası için farklı düşünebiliriz. Fakat utl_file için bu hata veriliyorsa durum biraz farklılaşıyor.
Bunun
sebebi UTL_FILE.PUT_LINE paketinin maximum alabileceği değer 32767 bytes Bknz
https://docs.oracle.com/utl_file
Eğer
çektiğiniz datanın boyutuna bakarsanız bu değerden büyük
olduğunu göreceksiniz.  
Bu
sorunu ben DBMS_XSLPROCESSOR
paketi ve CLOB2FILE
procedure kullanarak aştım. 
SQL>
  declare
  2     l_clob    clob;
  3     l_tmp     long;
  4     l_offset  number := 1;
  5     lFile       UTL_FILE.file_type;
  6   begin
  7    loop
  8      select
dbms_lob.substr@DB_TESTDB(dbms_metadata.get_ddl@DB_TESTDB('PACKAGE
BODY','ILKER','PKG_ADMIN'), 4000, l_offset )
  9      into l_tmp
 10     from dual@DB_TESTDB;
 11
 
 12    exit when l_tmp is null;
 13    l_clob := l_clob || l_tmp;
 14    l_offset := l_offset + length(l_tmp);
 15   end loop;
 16
   -- lFile := UTL_FILE.fopen('EXPORT_DIR', 'createscr.sql','w');
 17
   -- UTL_FILE.put(lFile, l_clob);
 18
   -- UTL_FILE.fclose(lFile);
 19
   -- dbms_output.put_line( 'l_clob length is ' || length(l_clob) );
 20 DBMS_XSLPROCESSOR.clob2file(l_clob,'EXPORT_DIR','createscr1.sql';
 21
   end;
 22
   /
Buna
dair farklı bir kaydı support üzerinden de  inceleyebilir siniz.