本人没学过oracle....
题目是要 建个函数 输入COURSE_NAME 显示选了该课程学生平均分!!
CHOICE表里有S_NO,COURSE_NO,SCORE
COURSE表里有COURSE_NO,COURSE_NAME
CREATE OR REPLACE
FUNCTION AVGSCORE_F
( COURSENAME_F IN VARCHAR2
) RETURN NUMBER IS
SCORE_F NUMBER;
BEGIN
SELECT AVG(SCORE) INTO SCORE_F FROM CHOICE
WHERE COURSE.COURSE_NAME = COURSENAME_F AND CHOICE.COURSE_NO=COURSE.COURSE_NO;
RETURN SCORE_F;
END AVGSCORE_F;
这是错误:
错误(7,4): PL/SQL: SQL Statement ignored
错误(8,64): PL/SQL: ORA-00904: "COURSE"."COURSE_NO": 标识符无效
------解决方案--------------------
select avg(a.score) into score_f from choice a ,course b where
a.cursor_no=b.cursor_no where b.cursor_name=cursorname_f
------解决方案--------------------
from后面少了一个表名。导致此表的属性不能被识别。
------解决方案--------------------
from 两张表,你只写了一个
------解决方案--------------------
COURSE.COURSE_NO无效,但你的sql语句中就没有表COURSE。二楼的说法是正确的。
------解决方案--------------------
COURSE.COURSE_NO COURSE是哪里来的 楼主注意下,报错信息很明确