发生异常的时候, 比如你的v_name不存在

解决方案 »

  1.   

    create or replace function f_size (v_name in  varchar2)
     return VARCHAR2 is
     v_size varchar2(20);
     begin
     v_size:='0';
       select sum(bytes)/1024/1024||'M' into v_size from dba_data_files where tablespace_name=upper(v_name);
       return v_size;
       end f_size;
    异常不会用到,如果条件不成立,只是查不到结果,不会有异常。
    如上设置v_size='0'的初始值就可以了。
      

  2.   

    V_NAME不存在查询的结果是 M
    结果大小大于v_size定义的大小时会调用到异常部分代码返回0