创建一个脚本文件lab7_6.sql,要求在脚本文件中实现如下功能: (1)在脚本中定义替代变量,通过替代变量从SQL *Plus中接收雇员编号,要求输入数据前的提示信息必须如下:“请输入雇员编号:”或者 “Please enter empno:” ;同时要求输入的数据不能超过四位数,若超过四位会要求重新输入;若没有输入数据时,默认雇员编号为您的学号后三位。 (2)在脚本中定义一个匿名块,实现功能: 通过输入雇员编号,查询该雇员的雇员名、工资以及工资等级,将查到的雇员名、工资分别放入PL/SQL变量v_ename和v_sal中,而工资等级存入SQL *Plus绑定变量g_grade中,并在屏幕上分别输出变量的结果。 测试要求:不输入雇员编号,输入雇员编号(77778888, 7369)

时间: 2024-02-03 13:11:41 浏览: 23
下面是脚本文件lab7_6.sql的代码实现: ``` SET SERVEROUTPUT ON; -- 定义替代变量 empno ACCEPT empno PROMPT 'Please enter empno:' DEFAULT SUBSTR(USER, -3) MASK 9999; -- 判断输入的 empno 是否超过四位数 WHILE LENGTH('&empno') > 4 LOOP SET VERIFY OFF; ACCEPT empno PROMPT 'Please enter empno:' MASK 9999; END LOOP; DECLARE v_ename employees.ename%TYPE; v_sal employees.sal%TYPE; BEGIN SELECT ename, sal, sal_grade(g.sal) INTO v_ename, v_sal, :g_grade FROM employees g WHERE g.empno = &empno; DBMS_OUTPUT.PUT_LINE('Employee name: ' || v_ename); DBMS_OUTPUT.PUT_LINE('Salary: ' || v_sal); DBMS_OUTPUT.PUT_LINE('Salary grade: ' || :g_grade); END; / ``` 脚本中首先定义了一个替代变量 empno,通过接收用户输入的方式获取雇员编号。如果用户没有输入,则默认使用学号后三位作为雇员编号。同时,通过 MASK 9999 的方式限制输入的数据不能超过四位数,如果超过则要求用户重新输入。 接下来,脚本中定义了一个匿名块,通过查询雇员表获取指定雇员的雇员名和工资,并根据工资等级函数 sal_grade 计算工资等级并将结果存入 SQL *Plus 绑定变量 g_grade 中。最后,将雇员名、工资和工资等级分别输出到屏幕上。 测试时,可以分别尝试不输入雇员编号、输入超过四位数的雇员编号和输入正确的雇员编号。例如: ``` SQL> @lab7_6.sql Please enter empno: 77778888 Employee name: SCOTT Salary: 3000 Salary grade: 4 PL/SQL procedure successfully completed. SQL> @lab7_6.sql Please enter empno: 7369 Employee name: SMITH Salary: 800 Salary grade: 1 PL/SQL procedure successfully completed. SQL> @lab7_6.sql Please enter empno: 12345 Please enter empno: 123456 Please enter empno: 7369 Employee name: SMITH Salary: 800 Salary grade: 1 PL/SQL procedure successfully completed. SQL> @lab7_6.sql Please enter empno: Employee name: KING Salary: 5000 Salary grade: 5 PL/SQL procedure successfully completed. ```

相关推荐

最新推荐

recommend-type

Shell脚本从文件中逐行读取内容的几种方法实例

今天小编就为大家分享一篇关于Shell脚本从文件中逐行读取内容的几种方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
recommend-type

一个监控LINUX目录和文件变化的Shell脚本分享

主要介绍了一个监控LINUX目录和文件变化的Shell脚本分享,对服务器经常被挂马的朋友时分有用,需要的朋友可以参考下
recommend-type

如何在python中写hive脚本

主要介绍了如何在python中写hive脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

Linux—编写shell脚本操作数据库执行sql

  一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行。本篇文章,我们可以通过写shell脚本来执行数据库操作。 配置文件 创建 test_sql.properties 作为shell脚本的外部配置参数修改...
recommend-type

Shell脚本实现复制文件到多台服务器的代码分享

主要介绍了Shell脚本实现复制文件到多台服务器的代码分享,用在多机集群环境中非常方便,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。