求救啊!!!PLS-00428: 在此 SELECT 语句中缺少 INTO 子句

kn846148865 2010-04-13 11:44:58
declare
totalcourgrade real;
begin

totalcourgrade := GetCourseGrade('S07080101');

select tb_grade.stuid 学号,stuname 姓名,sum(coursegrade) 已获学分 from tb_grade,tb_student where tb_student.stuid = tb_grade.stuid
group by tb_grade.stuid,stuname;

dbms_output.put_line(totalcourgrade);
end;



出现以下错误:
select tb_grade.stuid 学号,stuname 姓名,sum(coursegrade) 已获学分 from tb_grade,tb_student where tb_student.stuid = tb_grade.stuid
*

第 7 行出现错误:
ORA-06550: 第 7 行, 第 1 列:
PLS-00428: 在此 SELECT 语句中缺少 INTO 子句

我是想既输出totalcourgrade(总学分),又得到select的查询结果。GetCourseGrade('S07080101')是调用的函数.

请各位大侠帮帮忙啊!急啊!
...全文
8373 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
chenhuizhouhb 2010-04-15
  • 打赏
  • 举报
回复 1
这个问题很好解决,你在存储过程中调用select语句必须要有目的,就是说你select什么是你想要的结果,而这个结果要么给参数(out输出型参数)要么给变量(多数情况),这就是症结
tangren 2010-04-13
  • 打赏
  • 举报
回复
DECLARE
totalcourgrade REAL;
v_id VARCHAR2(30);
v_name VARCHAR2(30);
v_score NUMBER;

BEGIN
FOR cc IN (SELECT * FROM tb_student) LOOP
totalcourgrade := GetCourseGrade(cc.stuid);

SELECT tb_grade.stuid, stuname, SUM(coursegrade)
INTO v_id, v_name, v_score
FROM tb_grade, tb_student
WHERE tb_student.stuid = tb_grade.stuid AND
tb_student.stuid = cc.stuid;

dbms_output.put_line('name:' || v_name || ',id:' || v_id || ',score:' || to_char(v_score) ||
',total:' || to_char(totalcourgrade));
END LOOP;
END;
行舟 2010-04-13
  • 打赏
  • 举报
回复
又得到select的查询结果,需要放到游标中。
codearts 2010-04-13
  • 打赏
  • 举报
回复
发错帖了。

codearts 2010-04-13
  • 打赏
  • 举报
回复
OPEN cur_OUT FOR  
'
SELECT TO_CHAR(TRUNC(TO_DATE(D_TIME,''YYYY-MM-DD HH24:MI:SS''),''MI''),''YYYY-MM-DD HH24:MI:SS'') D_TIME,
TO_CHAR(AVG(F_COMPONENTCODE),''fm9999999990.00'') F_COMPONENTCODE
FROM ' || TABLE_NAME || '
WHERE TO_CHAR(TRUNC(TO_DATE(D_TIME,''YYYY-MM-DD HH24:MI:SS''),''MI''),''YYYY-MM-DD HH24:MI:SS'')
BETWEEN ''2010-04-04 02:01'' AND ''2010-04-04 02:06''
GROUP BY TO_CHAR(TRUNC(TO_DATE(D_TIME,''YYYY-MM-DD HH24:MI:SS''),''MI''),''YYYY-MM-DD HH24:MI:SS'')
ORDER BY TO_CHAR(TRUNC(TO_DATE(D_TIME,''YYYY-MM-DD HH24:MI:SS''),''MI''),''YYYY-MM-DD HH24:MI:SS'')
';
心中的彩虹 2010-04-13
  • 打赏
  • 举报
回复


declare
totalcourgrade real;
v_stuid tb_grade.stuid%type;
v_stuname varchar2(20);
v_num number;
cursor xsjc_cur is select tb_grade.stuid,stuname,sum(coursegrade) as coursegrade from tb_grade,tb_student where tb_student.stuid = tb_grade.stuid
group by tb_grade.stuid,stuname;
begin
totalcourgrade := GetCourseGrade('S07080101');
for xsjc_cur_rec in xsjc_cur loop
v_stuid:=xsjc_cur_rec.stuid;
v_stuname:=xsjc_cur_rec.stuname;
v_num:=xsjc_cur_rec.coursegrade;
dbms_output.put_line('学号:'||to_char(v_stuid),'姓名:'||v_stuname,'学分:'to_char(v_num));
end loop;
dbms_output.put_line(totalcourgrade);
end;



tangren 2010-04-13
  • 打赏
  • 举报
回复
结帖率:0.00% ,楼主要注意结贴!!
header230 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tangren 的回复:]
SQL code
DECLARE
totalcourgrade REAL;
v_id VARCHAR2(30);
v_name VARCHAR2(30);
v_score NUMBER;

BEGIN
FOR cc IN (SELECT * FROM tb_student) LOOP
totalcour……
[/Quote]


up

3,497

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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