我要得到这个文件的大小和行数 然后生成在另一个文件中,现在不知道怎么通过oracle代码得到前一个文件的大小,急急急另:怎么控制生成文件的大小,比如文件最大1M,超过1M的序号增加,以aa文件(1.5M)为例
aa_001.txt  1M
aa_002.txt  0.5M 
3Q~

解决方案 »

  1.   

    SQL> --写了一个得到文件大小的函数
    SQL> --注意:你要设置utl_file_dir参数指向你存储文件的位置,如:
    SQL> --alter system set utl_file_dir='d:\temp' scope=spfile;
    SQL> --然后重启数据库生效
    SQL> 
    SQL> CREATE OR REPLACE FUNCTION get_filesize(i_path VARCHAR2, i_name VARCHAR2) RETURN NUMBER IS
      2    v_exists     BOOLEAN;
      3    v_filelength NUMBER;
      4    v_blocksize  NUMBER;
      5  BEGIN
      6    utl_file.fgetattr(location    => i_path,
      7                      filename    => i_name,
      8                      fexists     => v_exists,
      9                      file_length => v_filelength,
     10                      block_size  => v_blocksize);
     11    RETURN v_filelength;
     12  END;
     13  /函数已创建。SQL> set serveroutput on;
    SQL> SELECT get_filesize('d:\temp', 'import.log') file_size FROM dual; FILE_SIZE
    ----------
          2221SQL>