oracle plsql考试试卷 下载本文

内容发布更新时间 : 2024/5/28 18:15:47星期一 下面是文章的全部内容请认真阅读。

姓名:_______________________

first_name FROM employees Where employee_id=180) WHERE employee_id =180;

Personal Number:_________________ 班级:____________________

A. UPDATE new_employees SET name = (Select last_name||

B. UPDATE new_employees SET name = (SELECT last_name||first_name FROM employees) WHERE employee_id =180;

C. UPDATE new_employees SET name = (SELECT last_name||first_name FROM employees

WHERE employee_id=180)

WHERE employee_id =(SELECT employee_id FROM new employees);

D. UPDATE new_employees SET name = (SELECT last name|| first_name FROM employees WHERE employee_id= (SELECT employee_id FROM new_employees)) WHERE employee_id=180;

37. 用下列代码回答问题:

Examine the structure of the EMPLOYEES, DEPARTMENTS, and LOCATIONS tables. 观察表结构

Which two SQL statements produce the name, department name, and the city of all the employees who earn more than 10000? (Choose two)

以下哪两个语句能够获取收入大于10000的相关信息?

姓名:_______________________ Personal Number:_________________ 班级:____________________

A. SELECT emp_name, department_name, city FROM employees e JOIN departments d USING (department_id) JOIN locations 1 USING (location_id) WHERE salary > 10000;

B. SELECT emp_name, department_name, city FROM employees e, departments d, locations 1 JOIN ON (e.department_id = d.department id) AND (d.location_id =1.location_id) AND salary > 10000;

C. SELECT emp_name, department_name, city FROM employees e, departments d, locations 1 WHERE salary > 10000;

D. SELECT emp_name, department_name, city FROM employees e, departments d, locations 1 WHERE e.department_id = d.department_id AND d.location_id = 1.location_id AND salary > 10000;

E. SELECT emp_name, department_name, city FROM employees e NATURAL JOIN departments, locations WHERE salary > 10000;

38. PL/SQL块中不能直接使用的SQL命令式()

A. Select B. Insert C. Update D. Drop

39. 以零做除数会引发()异常。 A. value_error B. zero_divide C. Storage_error D. self_is_null

40. 公用的子程序和常量在( )中声明

A. 过程 B.游标 C.包规范 D.包主体

41. 以下不属于命名的PL/SQL块的是( )。

A. 程序包 B.过程 C.游标 D.函数

42. 下面对Oracle事务描述不正确的是:

A. 事务具有原子性是不可再分的,要么一起成功要么一起失败 B. 一个事务中可以包含多条DML语句 C. 一个事务中可以包含多条DDL语句 D. DDL语句的事务是自动提交

E. 若事务回滚,则在事务中执行的所有DML操作均会被还原

43. PL/SQL语句块描述正确的是:

A. PL/SQL语句块不允许有嵌套关系出现

B. PL/SQL语句块中的所有变量、类型、异常均要在declare语句块中定义 C. 在PL/SQL使用的所有变量都必须在declare中定义

D. PL/SQL语句块中begin和end之间不能只有sql语句,必须要有PL/SQL表达式

44. 存储过程与函数的区别有:

A. 存储过程可以自行函数,但是函数中不能调用存储过程

姓名:_______________________ Personal Number:_________________ 班级:____________________

B. 能执行存储过程的地方一定能执行函数 C. 存储过程没有返回值,而函数要有返回值

D. 存储过程可以被JDBC直接调用,而函数必须要借助PL/SQL表达式或SQL语句才能执行

45. PL/SQL下定义package描述正确的是:

A. 包的声明中必须按照类型、变量、常量、异常、子程序、游标的定义顺序来声明内容,不允许将游标定义

在类型的前面

B. 包的声明中定义的子程序在包体中必须有实现,但游标可以没有 C. 包体中的所有子程序定义不一定都必须是在包声明中定义过的 D. 包体中的所有内容都必须在包声明中定义,否则会被视为无效内容 二、问答题(共一题)

1. 创建一个包,其中声明部分声明两个子程序,一个过程,一个函数(in p_empno)。过程的功能需求:根据

员工sal(空值处理为0)范围的不同修改Emp表中所有deptno的所有empno的工资信息。如果sal为800~2000,则工资上涨12%;如果sal为2001~4000,则工资上涨10%;如果sal大于4000,则工资上涨8%;如果工资小于800,则抛出用户自定义异常,输出信息:invalid sal。(10’) 技术要求:

1) 定义两个游标:一个游标获取部门编号,一个游标根据部门编号获取该部门下所有人员信息。 2) 用户自定义异常。

3) 使用带参数的游标并且使用修改游标本身记录的技术; 4) 逻辑控制:游标的双层循环。

5) 自定义集合类型及变量来接收游标结果集。

6) 函数的功能:实现工资上涨逻辑并且抛出异常,工资返回值为0。 7) 在过程中调用函数。

8) 使用绑定变量技术来实现UPDATE语句。