1、假设已在某远程客户端完成网络服务名配置,服务名为aptech,请写出用户MARTIN(用户口令martinpass)连接到服务器的命令:
Connect martin/martinpass@aptech
2、SYS用户以管理员身份登录后,要授予用户MARTIN可以对SCOTT用户的EMP表进行查询的权限,请写出授权命令:(假设MARTIN用户已存在)
Grant select on scott.emp to martin 3、
创建表employee的副本,但不包含表中的记录:
CREATE TABLE employee_copy AS select * from employee where 1=2
4、查询itemfile表中itemrate列的信息,要求将数值转换为字符串,并使用当前货币符号作为前缀:
SELECT to_char (itemrate,'C99999') FROM itemfile; 5、查itemfile表中itemdesc、re_level列的信息,要求re_level为NULL时显示为0
SELECT itemdesc, NVL (re_level,0) FROM itemfile; 6、完成以下PL/SQL块,功能是:显示2 到50的25个偶数。 BEGIN
FOR even_number IN 1..25 LOOP
DBMS_OUTPUT.PUT_LINE(even_number*2); END LOOP END; 7、
完成以下PL/SQL块,功能是:接受职员编号并检索职员姓名。
将职员姓名存储在变量empname中,如果代码引发VALUE_ERROR异常,则向用户显示错误消息。 DELCARE
empname employee.ename%TYPE;; eno employee.empno%TYPE; BEGIN
eno:=?&employee_number?;
select ename into empname from employee where empno=eno DBMS_OUTPUT.PUT_LINE(?职员姓名:?||empname); exception
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE(?要存储在变量中的值过大?) END;
8、完成以下PL/SQL块,功能是:使用游标,显示所有单价低于250元的玩具的单价。 DECLARE
my_toy_price toys.toyprice%TYPE;
CURSOR toy_cur IS
SELECT toyprice FROM toys WHERE toyprice<250; BEGIN
Open toy_cur LOOP
Fetch toy_cur into my_toy_price EXIT WHEN toy_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (toy_cur%ROWCOUNT || '. 玩
具单价:' || my_toy_price); END LOOP; CLOSE toy_cur; END;
9、完成以下PL/SQL块,功能是:使用游标显示销售报表。如果目标销售额(tsales)大于实际销售额(asales),则显示消息“需提高销售额”。如果tsales等于asales,则显示消息“已达到销售额”,否则显示消息“销售业绩出色” DECLARE
CURSOR sales_cur IS SELECT * FROM salesdetails; BEGIN
For sales_res in sales_cur loop
IF sales_rec.tsales > sales_rec.asales THEN
DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||' 需提高销售额'); ELSE
IF sales_res.tsales=sales_res.asales THEN
DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||'已达到销售额'); ELSE
DBMS_OUTPUT.PUT_LINE('产品:' ||sales_rec.pid||'
销售业绩出色'); END IF; END IF; END LOOP; END;
10、完成以下PL/SQL块,功能是:创建一个交换两数的过程。 CREATE OR REPLACE PROCEDURE
swap(p1 IN OUT NUMBER, p2 in out NUMBER) IS v_temp NUMBER; BEGIN v_temp := p1; p1 := p2; p2 := v_temp; END;
11、完成以下PL/SQL块,功能是:创建一个函数dept_name,其功能是接受职员编号后返回职员所在部门名称。(注:部门名称在dept表中,而职员信息在emp表中,职员所在部门号的列名为deptno) CREATE OR REPLACE FUNCTION dept_name (emp_no NUMBER)
RETURN VARCHAR2 AS dept_no NUMBER(2); result dept.dname%TYPE; BEGIN Selecet deptno into dept_no from emp where empno=emp_no SELECT dname INTO result FROM dept WHERE deptno = dept_no; Return result EXCEPTION
WHEN OTHERS THEN RETURN NULL; END;
12、要执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为?002?,可以输入以下命令: EXECUTE pack_ma.order-proc(‘002’)
13、完成以下PL/SQL块的功能是:创建一个触发器biu_job_emp,