|
自己的体会
形参(formal parameters)是指程序参数的名字和类型. 举例如下:
function departments (dept_id IN number, dept_name IN varchar2)
return number;
这里dept_id 和 dept_name 就是形参. 它们不仅有名, 而且有参数类型, 但是没有具体的值. 当程序调入内存时, 形参占据了一定的空间地址. 应此形参又叫内存占位体(place holder). 如果程序被其他程序使用:
empployee_number := departments(23, 'Computer Sciences');
23 和 Physics 就是实参. 它们是形参的具体值, 在内存中的地址就是形参指定的地址. 实参可以是某个特定值, 关系式, 地址指针或者绑便量(bind variable like :dept_number).
形参和实参的关系有二种, 位置型和名字型. 前面举例用的是位置型, 也就是第一个形参对应于的一个实参, 第二个形参对应于第二个实参. 下面的是名字型例子:
employee_number := departments(dept_id => 23, dept_name => 'Computer Sciences');
这里 => 是结合符号, 它把一个实参直接赋予形参. 名字型的好处在于不必考虑参数的位置,而且参数名和值一目了然 . 位置型和名字型可以混合使用, 但必须把位置形参数放在前面. 举例如下:
employee_number := departments('Computer Sciences', dept_id => 23);
对于行指针(cursor)来说, 其形参和实参的定义是一样的. 举例如下:
cursor dept_cur (dept_id IN number, dept_name) return number;
这是在pakage header 里cursor的定义. 使用行指针时,
open cursor dept_cur(23, 'Computer Sciences');
23 和'Computer Sciences'就成了实参.
仅供参考. |
|