数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
几十个实用的PL/SQL(2)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

第二阶段

Q.编写一个PL/SQL程序块,对名字以“A”或“S”开始的所有雇员按他们的基本薪水的10%加薪。

A.

DECLARE

       CURSOR c1 IS

          SELECT * FROM emp WHERE SUBSTR(ename,1,1)='A' OR SUBSTR(ename,1,1)='S' FOR UPDATE OF sal;

 

BEGIN

       FOR i IN c1

       LOOP

              UPDATE emp SET sal=NVL(sal,0)+NVL(sal,0)*0.1 WHERE CURRENT OF c1;

       END LOOP;

END;

/

Q.编写一PL/SQL,对所有的“销售员”(SALESMAN)增加佣金500.

A.

DECLARE

       CURSOR c1 IS

          SELECT * FROM emp WHERE job='SALESMAN' FOR UPDATE OF sal;

BEGIN

       FOR i IN c1

       LOOP

              UPDATE emp SET sal=NVL(sal,0)+500 WHERE CURRENT OF c1;

       END LOOP;

END;

/

Q.编写一PL/SQL,以提升两个资格最老的“职员”为“高级职员”。(工作时间越长,优先级越高)

A.

DECLARE

       CURSOR c1 IS

          SELECT * FROM emp WHERE job='CLERK' ORDER BY hiredate FOR UPDATE OF job;

          --升序排列,工龄长的在前面

 

BEGIN

       FOR i IN c1

       LOOP

              EXIT WHEN c1%ROWCOUNT>2;

              DBMS_OUTPUT.PUT_LINE(i.ename);

              UPDATE emp SET job='HIGHCLERK' WHERE CURRENT OF c1;

       END LOOP;

END;

/

Q.编写一PL/SQL,对所有雇员按他们基本薪水的10%加薪,如果所增加的薪水大于5000,则取消加薪。

A.

DECLARE

       CURSOR c1 IS SELECT * FROM emp  FOR UPDATE OF sal;

 

BEGIN

       FOR i IN c1

       LOOP

             

              IF (i.sal+i.sal*0.1)<=5000 THEN

                     UPDATE emp SET sal=sal+sal*0.1 WHERE CURRENT OF c1;

                     DBMS_OUTPUT.PUT_LINE(i.sal);

              END IF;

             

       END LOOP;

END;

/

Q.显示EMP中的第四条记录。

A.

DECLARE

       CURSOR c1 IS SELECT * FROM emp;

 

BEGIN

       FOR i IN c1

       LOOP

              IF c1%ROWCOUNT=4 THEN

                     DBMS_OUTPUT.PUT_LINE(i. EMPNO || ' ' ||i.ENAME ||  ' ' || i.JOB ||  ' ' || i.MGR || ' ' || i.HIREDATE || ' ' || i.SAL || ' ' || i.COMM  || ' ' || i.DEPTNO);

                     EXIT;

              END IF;

       END LOOP;

END;

/




相关文章

相关软件