求一个oracle简单问题!!急

小哈111 2014-06-11 11:44:57
本人没学过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": 标识符无效
...全文
255 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2014-06-18
  • 打赏
  • 举报
回复
from 两张表,你只写了一个
ruihuahan 2014-06-18
  • 打赏
  • 举报
回复
FROM CHOICE WHERE COURSE.COURSE_NAME =
  • 打赏
  • 举报
回复
COURSE.COURSE_NO COURSE是哪里来的 楼主注意下,报错信息很明确
善若止水 2014-06-18
  • 打赏
  • 举报
回复
COURSE.COURSE_NO无效,但你的sql语句中就没有表COURSE。二楼的说法是正确的。
magical_dragon 2014-06-18
  • 打赏
  • 举报
回复
最好在表名后加个别名,容易区分
weiwangwang521 2014-06-12
  • 打赏
  • 举报
回复
from后面少了一个表名。导致此表的属性不能被识别。
youngman123456 2014-06-12
  • 打赏
  • 举报
回复
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

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧