求大神写点SQL语句,简单一个存储过程,根据部门输出员工编号,员工姓名, 工资,职务,工龄就可以。

感激不尽,... 感激不尽, 展开
 我来答
JWWAAD
2019-08-29
知道答主
回答量:6
采纳率:0%
帮助的人:4282
展开全部
--编写程序以显示各部门名称和该部门包含的员工姓名。要求使用显式的循环游标实现。
--1.还记得怎么打印九九乘法表吗?还知道什么是嵌套for循环吗?还记得外循环一次,内循环循环多次吗?
--2.用两个for来使用游标取值,先取部门表中的部门编号和部门名称的值,然后用取出来的部门编号的值在员工表中当where条件后面的条件来取同一部门下的所有的员工信息
--3.游标:首先声明两个游标,一个游标操作部门表的数据,一个游标来操作员工表的数据
declare
cursor c1 is select deptno,dname from dept;--这个游标保存的是部门编号和部门名称
cursor c2(no number) is select ename from emp where deptno=no;--这个是带有部门编号的参数游标,保存的是同一部门下面所有的员工姓名
begin
for d1 in c1 loop --d1:是for循环自带的特点:允许用户自己任意输入的行变量的名字,而不用写行变量的声明,for循环自己会定义 in:是关键字 c1:是游标
dbms_output.put_line('部门编号: '||d1.deptno || '部门名称: '||d1.dname );--取值:行变量.列名
for e1 in c2(d1.deptno) loop --e1:是for循环自带的特点:允许用户自己任意输入的行变量的名字,而不用写行变量的声明,for循环自己会定义 in:是关键字 c2:是带参数的游标
--还记得调用一个带参数的方法,它的参数是可以直接在那个方法中直接使用,而不需要再定义的吗?
dbms_output.put_line('员工' || c2%rowcount ||'的名字: ' || e1.ename);
end loop ;
end loop ;
end ;
我是丑九怪
2016-07-22 · 分享从无到有,界限从有到无
我是丑九怪
采纳数:327 获赞数:792

向TA提问 私信TA
展开全部
--这个存储过程很简单啊,貌似只需要一个语句,传一个参数就能实现
更多追问追答
追问
上课没听过。。。实训懵逼。。。
写的都有BUG
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式