大家來找茬,運行報錯!為啥?求指導(dǎo)!
在行: 2 上開始執(zhí)行命令時出錯 -
DECLARE
--系的光標
cursor cdept is select dno,dname from dep;
pdno dep.dno%type;
pdname dep.dname%type;
--成績光標
cursor cgrade(coursename varchar2,depno number)? is? select? grade from sc where cno=(select cno from course where cname=coursename)
??????????????? and sno in (select sno from student where dno=depno);
???????????????
????? pgrade sc.grade%type;
????? count1 number;
????? count2 number;
????? count3 number;
??? avggrade number;
????? pcourseName varchar2 := '大學(xué)物理';
?????
??? begin??
??? open cdept;
??? loop
??? --取一個系的信息
????????????? fetch cdept into pdno,pdname;
??? exit when cdept %notfound;
??? --初始化工作
??? count1:=0;count2:=0;count3:=0;
???
??? --系的平均成績
??? select avg(grade) into avggrade from sc where cno=(select cno from course where cname=pcoursename)
??????????????? and sno in (select sno from student where dno=pdno);
??????????????? --取系中,選修了大學(xué)物理的學(xué)生成績
????? open cgrade(pcoursename,pdno);
????? loop
????? fetch cgrade into pgrade;
????? exit when cgrade%notfound;
????? if pgrade < 60 then count1:=count1+1;
????? elsif pgrade >=60 and pgrade <85 then count2:=count2+1;
??? else count3:=count3+1;
??? end if;
?????
????? end loop;
?????
????? close cgrade;
??? insert into msg1 values ( pcoursename,pdname,count1,count2,count3,avggrade);
???
???
??? end loop;
???
??? close cdept;
???
??? COMMIT;
??? dbms_output.put_line('統(tǒng)計完成');
??? end ;
?????
?????
錯誤報告 -
ORA-06550: 第 16 行, 第 19 列:
PLS-00215: 字符串長度限制在范圍 (1...32767)
06550. 00000 -? "line %s, column %s:\n%s"
*Cause:??? Usually a PL/SQL compilation error.
*Action:
2019-08-16
pcoursename 需要指定長度~~
2016-12-03
varchar2,如果在pl/sql中它是以輸入或輸出參數(shù)的長度為準,如果在SQL中(比如創(chuàng)建表時)它是不允許不指定長度的. 所以 老師在視頻中沒有設(shè)定長度編譯也可以通過
2015-10-11
cursor cgrade(coursename varchar2,depno number)??
為什么 這個varchar2? 可以不指定長度 ,不太明白 求解答