Create [or Replace] function function_name       
      ( [arg1[IN|out|in out]] arg_type1,                            
        [arg2[IN|out|in out]] arg_type2,             
         ……                                   
        [argn[IN|out|in out]] arg_typen) ——声明1
 Return return_type
   IS | AS
     声明部分    ——声明2                              
   Begin
     执行部分            
   Exception
     异常处理部分        
End function _name;     声明1是函数的形式参数,接受执行程序的传值到函数内部。
声明2是也可以声明参数。
对整个函数来说,在这两处声明的参数(变量)有什么不同?理由是?请各位高手详解?

解决方案 »

  1.   

    声明2 的是函数内部的变量,不是参数
      

  2.   

    声明1的参数是入口参数,声明2是函数内部的参数!
    这个所有的编程语言都一样的!没有啥区别!
      

  3.   

    声明1, 产生在堆栈中, 由调用该函数的函数产生, 生命周期随被调用函数的消亡而消亡
    声明2, 临时变量, 一般产生于堆中, 生命周期仅作用于该函数内部.
    其它的没什么区别
      

  4.   

    其实参数也是变量, 所有的变量区别仅在于声明时所在地(堆, 堆栈...), 生命周期有所不同而已