慕姐0267268
hitherto
慕粉1621154017
慕粉1230329569
斯巴达汉子
指向JDK这路径即可,比如我的安装目录为:c:\C:\Program Files\Java\jdk1.8.0_291
懒人出没
可以直接打开,你再试试
斯巴达汉子
没有Oracle,开发环境从哪里来?
宝慕林4199460
可能存在的原因有两个:1、需要运行的语句没有全部选中;2、现在有的oracle版本不支持该语句的运行
非忘了
qq_蒙蒙细雨_0
welsper.jer
劉敬楷
慕斯卡6169147
宇智波带自行车
慕粉1701232700
职员表 emp
慕哥2346272
不行, 会报参数个数和类型错误
w慕莱坞
默认情况下,oracle数据库允许在同一会话下,只能打开300个光标(可以查看oracle初始化参数得到这个值)。它的意思是指open光标之后,打开到一定数量就不可以在打开光标了。
慕粉3995511
elsif写错了
慕muuu
set serveroutput on
我也是猫
有的版本是Oracle数据库安装完成后 SQL Developer也随之安装完成 如果没有 也可以下载SQL Developer安装可视化界面
慕码人01
没有导入,是先把之前的表drop掉,再建的新表。sql脚本是写好的,在sqlplus里直接执行
慕数据7234192
慕运维7099135
有些报错是你可以预想到的并且当这种情况发生的时候你希望对应的解决方式自动执行,那么就可以用自定义例外,系统提示的报错有的时候会看不懂,不知道是报什么错
慕斯2513316
多了个if
慕容1086703
是的,但是加了可以在后面继续执行,你不更新就一直是同样的数据做一百遍。
weixin_慕村4458774
case when 实现的效果和if else的效果一样,有循环和全局修改(无法动态获取它对应的职位编号)的问题
慕九州7682859
方法一: 百度找一找
方法二:看之前的视频自己手动输入
方法三:重装数据库
难易程度由上到下
慕九州7682859
其实应该是你的程序逻辑有问题,你先执行了判断再去取光标的值。就是说你做判断的时候用的值不是你取到的值,所以你这边最好fetch放到循环体最开始。
无双雨辰
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
chenxinmomota
declare
cursor cdept is select deptno from dept;
pdeptno dept.deptno%type;
cursor cemp(dno number) is select sal from emp where deptno = dno;
psal emp.sal%type;
count1 int;
count2 int;
count3 int;
totalMon number := 0;
flag number;
begin
open cdept;
--外层循环
loop
fetch cdept into pdeptno;
exit when cdept%notfound;
--判断部门是否存在,如果部门不存在直接退出所有循环
select count(1) into flag from emp where deptno = pdeptno;
if flag = 0 then return;
end if;
--第一层循环内给变量赋值为0,保证每次内层循环的计数器都从零开始(必须要写外层循环内,内层循环外)
count1 := 0;
count2 := 0;
count3 := 0;
open cemp(pdeptno);
loop
select sum(sal) into totalMon from emp where deptno = pdeptno;
fetch cemp into psal;
exit when cemp%notfound;
if psal <3000 then count1 := count1+1;
elsif psal <6000 then count2 := count2+1;
else count3 := count3+1;
end if;
end loop;
close cemp;
--保存到msg表
insert into msg values(pdeptno,count1,count2,count3,totalMon);
--输出
--dbms_output.put_line('部门:'||pdeptno||' 3000以下为:'||count1||' 3000-6000为:'||count2||' 6000以上为:'||count3||' 总额为:'||totalMon);
end loop;
close cdept;
commit;
dbms_output.put_line('统计完成');
end;
/