Oracle数据库PL/SQL学习笔记二——基础控制语句

简介: Oracle数据库PL/SQL学习笔记二——基础控制语句
<span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">--简单的if判断</span>


<span style="font-size:18px;">begin
    if &var > 10 and &var <= 50 then
        dbms_output.put_line('输入值大于10');
    elsif &var > 50 then
        dbms_output.put_line('输入值大于50');
    else
         dbms_output.put_line('不在范围中');
    end if;
end;
--case搜索语句 (默认搜索true,当when满足true时执行。当case false时,搜索false,当when为false时执行)
begin
   case true
     when &var < 10 and &var > 0 then
          dbms_output.put_line('范围是0~10');
     when &var < 50 and &var > 10 then
          dbms_output.put_line('范围是10~50');
     when &var < 100 and &var > 50 then
          dbms_output.put_line('范围是50~100');
     else
          dbms_output.put_line('不在范围中');
   end case;
end;
--简单case语句(等于比较)
declare var1 varchar2(30);
begin
   var1 := &var;
   case var1
     when '男' then
          dbms_output.put_line('性别为男');
     when '女' then
          dbms_output.put_line('性别为女');
     else
          dbms_output.put_line('不在范围中');
   end case;
end;
--数值for循环
begin
   for i in 1..10 Loop
      dbms_output.put_line('The index value is ['||i||']');
   end loop;
end;
--显示游标for循环(i相当于一条记录,能直接通过 i.字段名获得对应的字段值)
declare
   cursor cur is select * from SCOTT.EMP t;
   begin
     for i in cur loop
        dbms_output.put_line('The name is ['||i.ename||']');
     end loop;
end;   
--隐式游标for循环(i相当于一条记录,能直接通过 i.字段名获得对应的字段值)
begin
     for i in (select * from SCOTT.EMP t) loop
        if i.ename = 'JONES' then
          exit;
        end if;
        dbms_output.put_line('The name is ['||i.ename||']');        
     end loop;
        dbms_output.put_line('循环结束');        
end;    
--简单循环
declare
   emp_entity SCOTT.EMP%rowtype;    --定义一行的数据类型    emp_name SCOTT.EMP.ENAME%type;
   cursor cur is select * from SCOTT.EMP t;
begin
   open cur;
   loop
      fetch cur into emp_entity;
          dbms_output.put_line('The name is ['||emp_entity.ename||']'); 
       exit when cur%notfound;    --exit when放在循环最后执行,达到类似repeat until循环的效果
   end loop;
   close cur;
end;  
-- exit when的用法
declare
  emp_name SCOTT.EMP.ENAME%type;--根据表的指定字段的数据类型定义变量
   cursor cur is select t.ename from SCOTT.EMP t;
begin
   open cur;
   loop   
      fetch cur into emp_name;
         exit when emp_name ='wanli';    --条件放前面,先判断后执行
          dbms_output.put_line('The name is ['||emp_name||']');    
   end loop;
   close cur;
end;          
--if  exit的用法         continue和continue when跳过当前索引值是11g的新功能 
declare
  emp_name SCOTT.EMP.ENAME%type;
   cursor cur is select t.ename from SCOTT.EMP t;
begin
   open cur;
   loop   
      fetch cur into emp_name;
        if emp_name = 'wanli'  then
          exit;
        else
          dbms_output.put_line('The name is ['||emp_name||']');   
        end if; 
   end loop;
   close cur;
end;
--while循环
declare 
   emp_name SCOTT.EMP.ENAME%type;
   cursor cur is select t.ename from SCOTT.EMP t;
begin
    open cur;
    while cur%isopen loop
        fetch cur into emp_name;
        if cur%notfound then
           close cur;   --关闭游标,不能通过while循环的条件判断,自然结束循环
        end if;
         dbms_output.put_line('The name is ['||emp_name||']'); 
    end loop;
end;
</span>
目录
相关文章
|
12天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
50 11
|
25天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
1月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
18天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
49 7
|
1月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
25 2
|
13天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
87 15
|
6天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
13天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
17天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。

推荐镜像

更多
下一篇
DataWorks