首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> PLSQL >> 正文

java-oracle中几十个实用的PL/SQL


--插入记录
DBMS_OUTPUT.PUT_LINE(´插入记录:´);
vemp(i).empno:=1000;
vemp(i).ename:=´Goldens´;
vemp(i).job:=´Software´;
vemp(i).mgr:=null;
vemp(i).hiredate:=´2003-01-04´;
vemp(i).sal:=8888;
vemp(i).comm:=10;
vemp(i).deptno:=10;

FOR j IN 1..i
LOOP
DBMS_OUTPUT.PUT(vemp(j).empno||´ ´||vemp(j).ename||´ ´||vemp(j).job);
DBMS_OUTPUT.PUT(vemp(j).mgr||´ ´||vemp(j).hiredate||´ ´||vemp(j).sal);
DBMS_OUTPUT.PUT_line(vemp(j).comm||´ ´||vemp(j).deptno);

END LOOP;
--删除第5、6条记录
DBMS_OUTPUT.PUT_LINE(´删除第5、6条记录:´);
FOR j IN 5..i-2
LOOP
vemp(j).empno:=vemp(j+2).empno;
vemp(j).ename:=vemp(j+2).ename;
vemp(j).job:=vemp(j+2).job;
vemp(j).mgr:=vemp(j+2).mgr;
vemp(j).hiredate:=vemp(j+1).hiredate;
vemp(j).sal:=vemp(j+2).sal;
vemp(j).comm:=vemp(j+2).comm;
vemp(j).deptno:=vemp(j+2).deptno;
END LOOP;
vemp(i-1).empno:=null;
vemp(i-1).ename:=null;
vemp(i-1).job:=null;
vemp(i-1).mgr:=null;
vemp(i-1).hiredate:=null;
vemp(i-1).sal:=null;
vemp(i-1).comm:=null;
vemp(i-1).deptno:=null;
vemp(i).empno:=null;
vemp(i).ename:=null;
vemp(i).job:=null;
vemp(i).mgr:=null;
vemp(i).hiredate:=null;
vemp(i).sal:=null;
vemp(i).comm:=null;
vemp(i).deptno:=null;

FOR j IN 1..i-2
LOOP
DBMS_OUTPUT.PUT(vemp(j).empno||´ ´||vemp(j).ename||´ ´||vemp(j).job);
DBMS_OUTPUT.PUT(vemp(j).mgr||´ ´||vemp(j).hiredate||´ ´||vemp(j).sal);
DBMS_OUTPUT.PUT_line(vemp(j).comm||´ ´||vemp(j).deptno);

END LOOP;


END;
/


第四阶段
Q.编写一过程以接受用户输入的三个部门编号并显示其中两个部门编号的部门名称。
A.
CREATE OR REPLACE PROCEDURE DeptName(no1 dept.deptno%TYPE,no2 dept.deptno%TYPE,no3 dept.deptno%TYPE) AS
vflag NUMBER;
vdeptno1 dept.deptno%TYPE;
vdeptno2 dept.deptno%TYPE;
vdname1 dept.dname%TYPE;
vdname2 dept.dname%TYPE;

BEGIN
vflag:=TO_NUMBER(TO_CHAR(SYSDATE,´SS´));
IF (vflag>=1 AND vflag<=10) OR (vflag>=50 AND vflag<60) THEN
SELECT deptno,dname INTO vdeptno1,vdname1 FROM dept WHERE deptno=no1;
SELECT deptno,dname INTO vdeptno2,vdname2 FROM dept WHERE deptno=no2;
ELSIF (vflag>=11 AND vflag<=20) OR (vflag>=40 AND vflag<50) THEN
SELECT deptno,dname INTO vdeptno1,vdname1 FROM dept WHERE deptno=no1;
SELECT deptno,dname INTO vdeptno2,vdname2 FROM dept WHERE deptno=no3;
ELSE
SELECT deptno,dname INTO vdeptno1,vdname1 FROM dept WHERE deptno=no2;
SELECT deptno,dname INTO vdeptno2,vdname2 FROM dept WHERE deptno=no3;
END IF;
DBMS_OUTPUT.PUT_LINE(´部门编号:´||vdeptno1 ||´ ´||´部门名称:´ ||vdname1);
DBMS_OUTPUT.PUT_LINE(´部门编号:´||vdeptno2 ||´ ´||´部门名称:´ ||vdname2);

END;
/
EXECUTE DeptName(10,20,30);

Q.编写一过程以显示所指定雇员名的雇员部门名和位置。
A.
CREATE OR REPLACE PROCEDURE DeptMesg(pename emp.ename%TYPE,pdname OUT dept.dname%TYPE,ploc OUT dept.loc%TYPE) AS
BEGIN
SELECT dname,loc INTO pdname,ploc
FROM emp,dept
WHERE emp.deptno=dept.deptno AND emp.ename=pename;
END;
/
VARIABLE vdname VARCHAR2(14)
VARIABLE vloc VARCHAR2(13)

EXECUTE DeptMesg(´SMITH´,:vdname,:vloc);
PRINT vdname vloc;

上一页  [1] [2] [3] [4] [5] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航