Plsql 哪个语句将成功调用函数?
调用包括“Execute”语句,但此处以下语句被标记为错误: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
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