Plsql 哪个语句将成功调用函数?

Plsql 哪个语句将成功调用函数?,plsql,oracle10g,Plsql,Oracle10g,调用包括“Execute”语句,但此处以下语句被标记为错误: create or replace function calc_player_avg (v_id IN player_bat_stat.player_id%type) return number is v_avg number; begin select hits / at_bats

调用包括“Execute”语句,但此处以下语句被标记为错误:

         create or replace function calc_player_avg
            (v_id IN player_bat_stat.player_id%type)
         return number 
         is
         v_avg number;
         begin
             select hits / at_bats
             into v_avg
             from player_bat_stat
             where player_id = v_id;
             return (v_avg);
         end;
正确的答案是:

         Execute calc_player_avg(31);

第一个是错误的,因为对象是函数,所以需要有一个变量来捕获返回

         select calc_palyer_avg(player_id) from player_bat_stat;

哦,是的!函数需要返回值。我怎么能忘记这样一个重要的事实。谢谢:)
SQL> execute calc_player_avg(31);
BEGIN calc_player_avg(31); END;

      *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00221: 'CALC_PLAYER_AVG' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


SQL> var avg number;
SQL> execute :avg := calc_player_avg(31);

PL/SQL procedure successfully completed.
SQL> print avg

       AVG
----------
        .4