PL/SQL 编程:函数、包与触发器的深入解析
1. PL/SQL 存储函数
PL/SQL 存储函数与其他编程语言中的函数类似,它总是会返回一个结果,即便这个结果可能为 NULL。函数通常作为赋值操作的一部分被调用,用于执行预定的计算,常常会使用运行时输入参数,并将计算结果返回给赋值变量。
例如,有一个名为 club_sal
的函数,用于计算特定俱乐部当前签约球员的总薪水。函数调用示例如下:
v_club_salary := club_sal(i_club);
在这个例子中, i_club
是输入参数,表示要计算薪水的俱乐部名称。当执行这个赋值表达式时, club_sal
函数会被调用, i_club
变量的当前值会作为输入参数传递给函数,函数返回的结果会被赋值给 v_club_salary
变量。
PL/SQL 函数的计算结果是一个可赋值的值,因此它与赋值操作紧密相关。如果要使用过程实现相同的功能,则需要在过程中声明 v_club_salary
作为输出参数。
过程只能通过 out
或 in - out
参数返回值,而函数则通过其返回类型本质上返回值。虽然函数可以接受 out
和 in - out
参数,但这种使用方式被认为是副作用,属于不良编程实践。