Oracle 1Z0-147 PL/SQL函数调用详解

需积分: 10 18 下载量 194 浏览量 更新于2024-08-02 收藏 1.4MB PDF 举报
"Oracle 1Z0-147考试是关于Oracle9i中的PL/SQL编程的,版本为10.27.05。本部分讨论了一个名为`CALC_PLAYER_AVG`的函数,该函数接受一个参数`V_ID`,类型为`PLAYER_BAT_STAT.PLAYER_ID%TYPE`,并返回一个数字类型的平均值。函数内部通过查询`PLAYER_BAT_STAT`表,计算指定球员的击打率(HITS/AT_BATS)并将其作为结果返回。 问题1要求在SQL*Plus中正确调用这个函数。选项A:`SELECT CALC_PLAYER_AVG(PLAYER_ID) FROM PLAYER_BAT_STAT;`,这个选择试图直接在SELECT语句中调用函数,这是不正确的,因为函数不能直接用于查询。在SQL中,函数通常用于计算或处理数据,而不是直接作为查询的一部分。 正确的调用方式是选项B中提到的,但B选项本身表述有误,因为在SQL*Plus中执行函数应该使用`EXECUTE`命令,而不是`SELECT`。理想的步骤应该是先声明一个绑定变量(如`V_GET_VALUE`),然后通过`EXECUTE`命令传递参数并接收返回值。因此,正确的执行方式应类似于: ```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与选项A类似,没有使用`EXECUTE`命令,所以也是错误的。 选项E中的`STARTCALC_PLAYER_AVG(31)`可能是一个误解,因为它不是标准的PL/SQL函数调用语法,`START`通常不是PL/SQL的关键字,可能是对执行过程的混淆。 总结来说,1Z0-147考试中关于`CALC_PLAYER_AVG`函数的这部分考察了函数的正确调用方式,以及PL/SQL中的绑定变量使用,以确保函数返回值的正确处理。在实际的考试中,考生需要熟悉PL/SQL的函数调用规则,并理解如何有效地利用它们来处理数据库中的数据。"