2个回答
展开全部
--编写程序以显示各部门名称和该部门包含的员工姓名。要求使用显式的循环游标实现。
--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 ;
--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 ;
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询