`
Phile.net
  • 浏览: 27096 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

PL/SQL 经典总结(一)

阅读更多
------------------------------PL SQL
--1,PL/SQL块
--PL/SQL 块是在SQL 语言之上发展起来的一种应用,可以集中的处理各种复杂的SQL操作。
--组成:
 DECLARE:
 --声明部分
 BEGIN
 --编写主题
  EXCEPTION
 --捕获异常
 END ;
 /*
看一个简单的PL/SQL 块
DECLARE
 i NUMBER ;
BEGIN
 i := 30 ;
 DBMS_OUTPUT.put_line('I 的内容为:'||i) ;
END ;
*/
--此时,直接执行程序即可。
--执行之后发现没有任何的输出。因为Oracle 在系统设置中默认设置了输出不显示,如果要
--显示的话,输入以下命令:
 set serveroutput on
DECLARE
 i NUMBER ;
BEGIN
 i:= 1/0;
EXCEPTION
 when ZERO_DIVIDE then
  dbms_output.put_line('error');
END ;
/

--PL/SQL   块还可以接收用户的输入信息,例如:现在要求用户输入一个雇员编号,之后根
--据输入的内容进行查询,查询雇员的姓名。
--用户的输入信息使用“&”完成。
DECLARE
 eno NUMBER ;
 en VARCHAR2(30) ;
BEGIN
 -- 输入的信息保存在eno 里
 eno := &no ;
 -- 之后根据eno 的值,对数据库进行查询操作
 SELECT ename INTO en FROM emp WHERE empno=eno ;
 DBMS_OUTPUT.put_line('编号为:'||eno||'雇员的姓名为:'||en) ;
EXCEPTION
 WHEN no_data_found THEN
 DBMS_OUTPUT.put_line('没有此雇员') ;
END ;
/

DECLARE
 eno number;
 en varchar2(30);
 dn varchar2(20);
BEGIN
 --输入的信息保存在eno中
 eno := &no;
 --根据eno的值查询ename,dname
 select ename into en from emp where empno = eno;
 select dname into dn from dept where empno = eno and deptno=dept.deptno;
 Dbms_Output.put_line('编号为:'||eno||'的雇员的姓名为:'||en||'在'||ed||'部门上班。');
 Exception
  when no_data_found then
  Dbms_Output.put_line('没有此雇员');
  END;
/
--在以上的查询中再进一步:可以根据雇员的编号查出姓名及其领导的姓名和所在部门
--并进行显示
DECLARE
eno emp.empno%TYPE;
en emp.ename%TYPE;
mn emp.ename%TYPE;
dn dept.dname%TYPE;
BEGIN
--输入的雇员编号保存在eno中
eno:=&no;
--之后根据输入的固原编号进行查询
SELECT e.ename,m.ename,d.dname INTO en,mn,dn FROM emp e,dept d,emp m
WHERE e.empno=eno AND e.mgr = m.empno AND e.deptno = d.deptno;
Dbms_Output.put_line('编号为'||eno||'的雇员的姓名为:'||en);
Dbms_Output.put_line('编号为'||eno||'的上级的姓名为:'||mn);
Dbms_Output.put_line('编号为'||eno||'的雇员的部门为:'||dn);
EXCEPTION
 WHEN no_data_found THEN
 Dbms_Output.put_line('没有此雇员!');
 END;
/

----------------------------------------Loop循环(do...while)
--PL/SQL中也包含了循环分支等条件控制语句
/*Loop 循环(do…while)
格式:
 LOOP
 循环的语句 ;
 EXIT WHEN   终止条件 ;
 循环条件必须更改 ;
 END LOOP ;
*/
--循环输出1~10。
DECLARE
 cou NUMBER ;
BEGIN
 --必须给一个初始值
 cou:=1;
 Loop
  DBMS_OUTPUT.put_line('cou='||cou);
  EXIT WHEN cou>=10;
  cou:=cou+1;
  END LOOP;
END;
/

-----------------------------------while循环
/*
格式:
 while(判断循环的条件) loop
 循环的语句 ;
 循环条件的改变 ;
 End loop ;
*/
--使用while修改上面的程序
DECLARE
cou NUMBER;
BEGIN
 cou:=1;
 WHILE(cou<=10)LOOP
 DBMS_OUTPUT.put_line('cou='||cou);
 cou:=cou+1;
 END LOOP;
END;
/

----------------------------------for循环
/*
格式:
 FOR  变量名称in  变量的初始值..结束值LOOP
 循环语句 ;
 END LOOP ;
*/
DECLARE
 cou NUMBER;
 BEGIN
 for cou in 1..10 LOOP
 DBMS_OUTPUT.put_line('cou='||cou);
END LOOP;
END;

-----------------------------------if语句
/*
 条件判断
格式:
 IF 条件THEN
 满足条件时,执行此语句
 END IF ;
*/
DECLARE
 cou NUMBER;
 BEGIN
 cou:=11;
 if(cou>0)THEN
  cou:=cou-1;
  DBMS_OUTPUT.put_line('cou='||cou);
  END if;
 END;
 
------------------------------if.....else语句
/*
如果if满足了则执行else
*/
DECLARE
cou1 NUMBER;
cou2 NUMBER;

 BEGIN
  cou2:=&cou1;
 IF cou2>10 THEN
  DBMS_OUTPUT.put_line('cou2='||cou2||'大于10.');
 ELSE
  DBMS_OUTPUT.put_line('cou2='||cou2||'小于或等于10.');
 END IF;
END;

-----------------------------if....elseif.......else;
DECLARE
cou1 NUMBER;
cou2 NUMBER;

 BEGIN
  cou2:=&cou1;
 IF cou2>10 THEN
  DBMS_OUTPUT.put_line('cou2='||cou2||'大于10.');
 ELSE IF cou2<10 THEN
  DBMS_OUTPUT.put_line('cou2='||cou2||'小于10.');
 ELSE
  DBMS_OUTPUT.put_line('cou2='||cou2||'等于10.');
  END IF;
 END IF;
END;

-----------------------------goto语句 无条件跳转语句
DECLARE
eno emp.empno%type;
sal emp.sal%type;
BEGIN
 eno:=&en;
 SELECT sal INTO sal FROM emp WHERE empno=eno;
 IF sal>3500 THEN
 goto po1;
 ELSIF sal>2000 THEN
 goto po2;
 else
 goto po3;
 END IF;
 <<po1>>
 DBMS_OUTPUT.put_line('高工资。。。。');
 <<po2>>
 DBMS_OUTPUT.put_line('中工资。。。。');
 <<po3>>
 DBMS_OUTPUT.put_line('低工资。。。。');
END;
/
 

 

分享到:
评论

相关推荐

    oracle 9i pl/sql程序设计笔记

    通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...

    PL/SQL VCS插件安装包+PL/SQL

    总结来说,"PL/SQL VCS插件安装包+PL/SQL"提供了一种高效的方式来管理Oracle数据库中的PL/SQL代码,通过整合VSS或其他VCS系统,实现了版本控制功能,促进了团队协作,增强了代码的可维护性。无论是在小型项目还是...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **最佳实践**:总结出一系列实用的建议和技巧,帮助读者更好地理解和掌握PL/SQL的应用场景。 ### 结论 《Oracle PL/SQL程序设计(第5版)》是一本全面介绍Oracle 11g中PL/SQL特性的书籍,适合数据库开发人员、管理...

    Oracle PL/SQL实例精解 数据库建立代码

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库操作能力和PL/SQL的结构化编程特性,使得数据库开发者能够创建复杂的应用程序和数据库逻辑。在"Oracle PL/SQL实例精解 数据库建立代码"中,我们将深入探讨...

    PL/SQL学习总结

    本文主要总结了 PL/SQL 的一些基本语句和操作,特别关注在 ORACLE 报表开发和 FROM 开发中的应用。 1. 日期处理: 在 PL/SQL 中,日期通常需要进行格式转换和截取操作。例如,`trunc()` 函数用于截取日期至指定时间...

    PL/SQL Developer 7.0

    PL/SQL Developer 7.0 是一款专为Oracle数据库设计的高效集成开发环境(IDE),致力于简化和优化存储程序单元的开发过程。该工具对于构建客户端/服务器应用程序的后端部分,即服务器端逻辑,提供了强大的支持。在...

    PL/SQL基础编程,实例自写

    #### 一、PL/SQL概述 PL/SQL,全称为Procedural Language for SQL,是Oracle数据库特有的高级程序设计语言。它结合了SQL的数据处理能力和传统编程语言的控制结构,使开发者能够在数据库环境中编写复杂的应用程序。...

    pl/sql程序设计ppt

    总结,PL/SQL提供了丰富的编程工具,如过程、函数、触发器和包,使开发者能更灵活地管理和操作数据库。通过学习和掌握这些概念,你可以创建高效、可维护的数据库应用程序。这份"pl/sql程序设计ppt"可能包含了对这些...

    PL/SQL Developer 64 bit

    对于需要频繁编写、测试和维护PL/SQL代码的项目来说,PL/SQL Developer 64位版是一个不可或缺的工具。它可以帮助开发人员更高效地完成日常任务,并且通过其强大的性能分析工具确保应用程序的高性能运行。 #### 4. ...

    PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql_pls

    "PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql plsql.ppt"这个压缩包提供了学习PL/SQL的基础材料,通过"第一章 pl-sql介绍.ppt"开始你的学习之旅,逐步探索这个强大而灵活的数据库编程语言。

    pl/sql数据库学习笔记

    下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量(初始值是多少,最终值如何得到))→编码→测试→上线 二、Select into语句 *用于创建...

    Oracle PL/SQL programming(5th Edition)

    《Oracle PL/SQL Programming》(第五版)是一本全面而深入的指南,旨在帮助读者掌握Oracle PL/SQL编程语言的核心技术和最佳实践。无论是对于初学者还是有经验的开发人员,这本书都是一个宝贵的资源。通过阅读本书,...

    PL/SQL 练习

    从给定的文件信息中,我们可以提炼出一系列与Oracle PL/SQL相关的知识点,涉及变量声明、数据查询、条件语句、异常处理以及数据库更新等核心概念。以下是对这些知识点的详细解析: ### 1. 变量声明与赋值 在PL/SQL...

    oracle sql and pl/sql

    1. **定义**:PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了 SQL 命令和过程式编程语句,使得开发人员能够编写更复杂的数据库应用程序。 2. **功能**: - 过程化代码执行:允许在数据库中执行...

    PL/SQLdeveloper32位和64位带汉化及注册码

    总结起来,PL/SQL Developer是一款强大的Oracle数据库开发工具,其32位和64位版本的提供,满足了不同用户的需求,汉化及注册码的包含使得使用更加便捷。通过它,用户可以高效地进行PL/SQL编程,提升数据库管理和开发...

    PL/SQL Developer如何连接64位的Oracle图解

    总结,要在64位Windows系统上使用PL/SQL Developer连接64位Oracle数据库,关键在于下载并配置32位的Oracle客户端,以及正确设置PL/SQL Developer的连接参数。遵循上述步骤,你就能在64位环境中顺利地使用PL/SQL ...

    PL/SQL Developer 8.0.4.1514注册码

    PL/SQL Developer是一款专为Oracle数据库设计的强大开发工具,它支持PL/SQL语言的开发、调试与管理。该工具不仅能够帮助开发者高效地编写和维护PL/SQL代码,还提供了诸如代码格式化、重构、性能分析等多种高级功能。...

    oracle PL/SQL

    总结来说,解决Oracle PL/SQL连接问题通常涉及检查和调整Oracle网络配置文件,尤其是`listener.ora`和`tnsnames.ora`。了解这些文件的结构和内容对于有效管理Oracle数据库连接至关重要。在开发和维护Oracle数据库...

Global site tag (gtag.js) - Google Analytics