SET serveroutput ON;
DECLARE
SUM NUMBER;
tot NUMBER;
tata NUMBER;
benz NUMBER;
FUNCTION accident
RETURN NUMBER
IS
z NUMBER;
BEGIN
SELECT COUNT(rid)
INTO tata
FROM participatedin,
Car
WHERE car.cid=participatedin.cid
AND model ='honda';
SELECT COUNT(rid)
INTO benz
FROM participatedin,
Car
WHERE car.cid=participatedin.cid
AND model ='benz';
SUM :=tata+benz;
RETURN SUM;
END;
BEGIN
tot:=accident();
dbms_output.put_line("Honda+Benz= "||tot);
END;
/
错误:
ERROR at line 19:
ORA-06550: line 19, column 11:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
(
你应该给一个更具描述性的标题,让人们更容易看到你的问题。 –
'sum'是一个函数名,我想这会让解析器感到困惑。再调用你的变量(也许在函数内部声明它,以及'tata'和'benz',而不是未使用的'z'?似乎更合适),看看是否能解决它。你的'dbms_output'会出错,因为你有双引号而不是单引号。 –
正如Alex所说,变量'tata'和'benz'不在函数的范围内,而是使用它们。在函数声明中声明它们。 –