Oracle 1Z0-147 PL/SQL 函数调用实践: CALC_PLAYER_AVG 示例

5星 · 超过95%的资源 需积分: 10 3 下载量 40 浏览量 更新于2024-07-28 收藏 1.4MB PDF 举报
Oracle 1Z0-147考试是针对Oracle 9i中的程序设计与PL/SQL的知识点,特别是在这个特定版本(Ver:10-27-05)中,题目主要聚焦于函数的使用和调用。本部分提供了一个名为`CALC_PLAYER_AVG`的示例函数,该函数接受一个参数`V_ID`,类型为`PLAYER_BAT_STAT.PLAYER_ID%TYPE`,并返回球员平均击打率(HITS/AT_BATS)。函数的目的是计算并返回指定球员的平均打击次数。 在SQL*Plus中,正确调用此函数的方式是通过将其作为一个表达式,而不是作为单独的命令来执行。选项A是正确的,它采用以下形式: A. SELECT CALC_PLAYER_AVG(PLAYER_ID) FROM PLAYER_BAT_STAT; 这个语句会从`PLAYER_BAT_STAT`表中选择每个球员ID对应的平均击打率,并返回结果。选项B错误地尝试使用`EXECUTE`命令来调用函数,这是用于执行存储过程的,而非函数,因为函数会直接返回值,而无需额外的变量声明和赋值。 如果要通过`EXECUTE`调用函数,需要先声明一个绑定变量(如选项B所示的`V_GET_VALUE`),然后将函数返回的结果赋值给这个变量,例如: ```sql SQL> VARIABLE v_get_value NUMBER SQL> EXECUTE: v_get_value := CALC_PLAYER_AVG(31) PL/SQL procedure successfully completed. SQL> PRINT v_get_value ``` 选项C中提到的`CALC_PLAYER('RUTH')`可能是调用函数的另一种形式,但根据提供的上下文,没有明确指出这种写法是否正确,通常函数名后面需要接参数。 选项D重复了正确的参数传递方式,即直接在函数调用中提供参数,这在SQL*Plus中是正确的。 选项E中的`STARTCALC_PLAYER_AVG(31)`不是一个标准的PL/SQL调用语法,可能是指的某种特定环境下的错误写法。 本题重点考察了PL/SQL函数的调用规则,尤其是在SQL*Plus环境中正确运用`SELECT`语句调用函数以及理解存储过程与函数的区别。考生应熟练掌握如何在Oracle数据库中编写、调用函数,并了解其返回值的处理方法。