在oracle中使用pl/sql来扩展SQL的功能,使得SQL能够更加的灵活,功能更加强大,效率更高。pl/sql让sql也能执行判断,循环等操作。主要记录一下pl/sql的基本语法和基本条件判断语句和循环语句供忘记了方便查阅。

1.pl/SQL的语法结构:

    declare

      //这部分用于声明变量

    begin

      //这部分用于处理业务逻辑

    exception

      //这部分用于处理例外也就是异常情况

    end;

   例如:   

      declare
        uname varchar2(10);
        hello varchar2(10) := 'helloworld'; --为变量赋值
        vsal emp.sal%type; --声明一个引用类型的变量
        pall emp%rowtype; --声明一个记录类型的变量
        digit number:=#---提示用户输入,然后根据用户输入执行相应的操作

        ...
      begin
        dbms_output.put_line(hello);
      exception
        when exception_name then

           //操作
      end;

2.)pl/sql的条件判断语句

    if 条件 then

      语句;

    elsif 条件then

      语句;

    else

      语句;

    end if;

例如:根据输入的年龄判断是处于哪个阶段的人

        declare
          age number := #
        begin
          if age < 18 then
             dbms_output.put_line('你还是未成年人');//表示系统输出语句,类似于system.out.print();
          elsif age > 18 and age <= 40 then
             dbms_output.put_line('你是青年人');
          else
             dbms_output.put_line('你是中年人!');
          end if;
        end;

3.)pl/sql的循环语句

  在pl/SQL中有三种循环结构。

  3.1)while 条件 loop

    语句块;

    end loop;

    例如:循环输出1-10的数。

      declare
        step number := 1;
      begin
        while step <= 10 loop
          dbms_output.put_line(step);
          step := step + 1;
        end loop;
      end;

  3.2)loop 循环语句

    loop

      exit when 退出条件;

      语句块;

    end loop;

例如:输出1-9的数。

      declare
        step number := 1;
      begin
        loop
          exit when step > 10;--当step>10退出循环
          dbms_output.put_line(step || ' ');
          step := step + 1;
        end loop;
      end;

  3.3)for语句循环结构

    for 循环变量 in n..N loop

      语句块;

    end loop;

例如:输出1-10之间的数。

    declare
    begin
      for step in 1.. 10 loop
      dbms_output.put_line(step);
    end loop;
    end;

案例1--使用PLSQL输出菱形
  declare
    m number := 10;
  begin
    for x in -m..m loop
      for y in -m..m loop
      if abs(y) + abs(x) <= m then
      dbms_output.put('*');
      else
      dbms_output.put(' ');
      end if;
      end loop;
    dbms_output.new_line();
   end loop;
  end;

案例2--使用PLSQL输出三角形。
  declare
    m number := 10;
  begin
    for x in reverse -m..m loop
      for y in -m..m loop
        if abs(y) + abs(x) <= m and x>=0 then
        dbms_output.put('*');
        else
        dbms_output.put(' ');
        end if;
      end loop;
    dbms_output.new_line();
    end loop;
  end;

以上就是pl/sql的基本语法以及基本的条件和循环结构。

oracle PL/SQL编程基础知识的更多相关文章

  1. Oracle Pl/SQL编程基础

    Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...

  2. Oracle PL/SQL 编程基础 实例

    create table mytest(name varchar(20),password varchar(30)); create or replace procedure sp_pro2 is  ...

  3. Oracle数据库编程:PL/SQL编程基础

    2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异 ...

  4. [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

    原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...

  5. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)

    原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下 ...

  6. [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

    原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日 ...

  7. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  8. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  9. 【强烈强烈推荐】《ORACLE PL/SQL编程详解》全原创(共八篇)--系列文章导航

    原文:[强烈强烈推荐]<ORACLE PL/SQL编程详解>全原创(共八篇)--系列文章导航 <ORACLE PL/SQL编程详解> 系列文章目录导航 ——通过知识共享树立个人 ...

随机推荐

  1. Shell 变量/echo命令

    Shell 教程 Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户 ...

  2. springboot切换配置

    1.默认只有一个application.properties文件 1)删除properties文件,换成yml方式.新增dev,prod两个文件 2)配置application.yml文件:actio ...

  3. SWPU2019 伟大的侦探

    01editor 选择 EBCDIC编码得到压缩包的密码 这里用到的是福尔摩斯里面的跳舞的小人加密 结果是:iloveholmesandwllm

  4. [CSP-S模拟测试]:取石子(博弈论+DP)

    题目描述 有三堆石子,它们的石子个数分别为$x,y,z$.$A$和$B$正在博弈,由$A$先手,双方轮流操作.每次操作是指,选择若干堆($1-3$堆)石子,从中各取出相同数量的石子(不能$1$个都不取 ...

  5. 追加环境变量到Path

    @echo off setlocal enabledelayedexpansion ::使用方法: :: "C:\WINDOWS" :: "C:\jar" SE ...

  6. Python进制转换format格式化

    进制转换:先介绍用传统数学方法,再介绍用python内置方法 二进制转十进制: 1101 转为十进制 1*2^(4-1)+1*2^(3-1)+0*2^(2-1)+1*2^(1-1) 即各个位拆开,乘以 ...

  7. 使用jdk自带的visualVM监控远程监控was

    1.登录was控制台https://172.16.87.221:9043/ibm/console/unsecureLogon.jsp服务器--服务器类型--Java 和进程管理---进程定义---Ja ...

  8. 获取免费的https证书

    可以通过网站获取免费的https证书 首先到https://freessl.org注册一个账号 然后就可以开始创建免费证书了 获取的证书里面通常只有pem后缀文件 nodejs使用的时候需要crt文件 ...

  9. mappers:将sql映射注册到全局配置中

    <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 --> <!-- 6.mappers: ...

  10. WCF 配置说明

    关于WCF中的地址和绑定,需要补充一下. WCF中支持的传输协议包括HTTP.TCP.Peer network(对等网).IPC(基于命名管道的内部进程通信)以及MSMQ(微软消息队列),每个协议对应 ...