博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle入门09
阅读量:4221 次
发布时间:2019-05-26

本文共 2041 字,大约阅读时间需要 6 分钟。

PL/SQL编程
  PL/SQL是oracle的专用语言,它对标准的SQL语言的扩展.SQL语句可以嵌套在PL/SQL语言中,并结合处理语句。
PL/SQL程序结构
  使用了程序块的结构组织的代码.最简单的程序块是一种被称为”匿名块”的程序块,匿名块是指不会被oracle存储并且不能够重用程序块。
PL/SQL程序通常包括3部分:Declare部分、exception部分、Begin和end部分.
Begin和end是PL/SQL的必须部分,总是begin开始end结束.
Declare部分包含定义变量、常量和游标等类型的代码.
Begin与end之间可以嵌套begin与end及exception.
//打开服务器的输出
SQL> set serveroutput on;
SQL> begin //开始
  2  dbms_output.put_line('Hello World');
  3  end;
  4  /
//声明一个整型的变量
SQL> declare
  2   age number(2);
  3  begin
  4  age:=90;
  5  dbms_output.put_line(age);
  6  end;
  7  /
//声明后直接赋值
SQL> declare
  2   age number(2) :=90;
  3  begin
  4  dbms_output.put_line(age);
  5  end;
  6  /
//捕获异常处理
SQL> declare
  2  age number(2);
  3  begin
  4  age :='qwe'
  5  ;
  6  exception
  7  when others then
  8  dbms_output.put_line('赋值失败');
  9  end;
10  /
条件判断语句
  有if与case语句
  
  If语句
If语法
   If(expression1)then pl/sql_statement
   Else
        Pl/sql_statement;
   End if;
  
If(expression1)then pl/sql_statement
   Else if(expression2)
        Pl/sql_statement;
   Else
        Pl/sql_statement;
   End if;
  
Case语句
     从oracle9i以后引入
     Case <selector>
        When <expression1> then pl/sql_statement1;
        When <expression2> then pl/sql_statement2;
        …….
        [else  pl/sql_statement;]
     End;
//案例
SQL> declare score number(2) :=80;
   begin
       if score>70 then dbms_output.put_line('成绩合格');
   end if;
   end;
  /
SQL> declare score number(2) :=80;
   begin if score>90 then dbms_output.put_line('成绩合格');
else dbms_output.put_line('成绩不合格');
end if;
end;
/
成绩不合格
SQL> declare score number(2):=8;
begin
case score
when 9 then dbms_output.put_line('成绩优秀');
when 8 then dbms_output.put_line('成绩亮');
end case;
end;
/
循环语句
  最基本的循环称为无条件循环,如果没有指定exit语句,循环将无条件执行,这种循环称为死循环,死循环尽量避免。
语法格式如下:
     Loop
       ---statement---
Exit when condition
End loop;
案例:
SQL> declare
      i number(2):=1;
       begin
            loop
              dbms_output.put_line(i);
                   i:=i+1;
          exit when i>10;
          end loop;
          end;
   /
While循环
    语法:
    While condition
         Loop
           Statement;
        End loop;
SQL> declare
     i number(2):=1;
         begin
           while i<10  
              loop dbms_output.put_line(i);
                i:=i+1;
             end loop;
          end;
  /
For循环
     For loop_control_variable in [reverse] lower upper loop
          Statement;
        End loop;
  SQL> begin
         for i in 1..10
            loop
            dbms_output.put_line(i);
           end loop;
       end;
      /

转载地址:http://pjlmi.baihongyu.com/

你可能感兴趣的文章
app自动化测试---ADBInterface驱动安装失败问题:
查看>>
九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
查看>>
c++使用宏检测类是否包含某个函数或者变量属性
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>
AtomicInteger源码解析
查看>>
CopyOnWriteArraySet源码学习
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>
Oracle 18c 单实例安装手册 详细截图版
查看>>
Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档
查看>>
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>
Oracle 11g 新特性 -- ASM 增强 说明
查看>>
Oracle 11g 新特性 -- Database Replay (重演) 说明
查看>>
Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
查看>>
Oracle 11g 新特性 -- RMAN Data Recovery Advisor(DRA) 说明
查看>>
CSDN博客之星 投票说明
查看>>
Oracle wallet 配置 说明
查看>>