--goto跳转语句
--在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句
begin
     dbms_output.put_line('goto开始了');
     goto c;
          --不被执行
          dbms_output.put_line('goto');
          dbms_output.put_line('goto');
          dbms_output.put_line('goto');
          dbms_output.put_line('goto');
    <<a>>
           dbms_output.put_line('goto aaa');           
    <<b>>
           dbms_output.put_line('goto bbb');
    <<c>>
           dbms_output.put_line('goto ccc');
end;   

--PL/SQL中的sql和rowcount属性:sql代表最近执行的sql语句,rowcount代表最近执行的sql语句影响的行数
declare
  vCount number;
  vDeptno dept2.deptno%type := 10;
begin
  --select count(*) into vCount from dept2;
  --update dept2 set dname = dname || '~.~' where deptno = vDeptno;
  --delete from dept2 where deptno = 40;
  insert into dept2 select * from dept;
  dbms_output.put_line('count:' || vCount);
  dbms_output.put_line(sql%rowcount || '行受影响');
end;
 
--PL/SQL执行sql语句
begin
  execute immediate 'create table temp as select * from dept';
end;
 
--动态sql,把sql语句放到变量中并传递参数
declare
     sqlstr varchar2(100);
begin
     sqlstr := 'insert into scott.dept values(12, :1, :abc)';
     --变量是按照占位符顺序插入的
     execute immediate sqlstr using '教务部', '武汉';
end;
 
select * from scott.dept;
 
--动态sql,把查询结果赋值给变量
declare
       dept_row_data scott.dept%rowtype;
       sqlstr varchar2(100);
begin
     sqlstr := 'select * from scott.dept where deptno = 11';
     execute immediate sqlstr into dept_row_data;
     dbms_output.put_line(dept_row_data.deptno);
end;
 
--if 语句
--select * from emp;
declare
     vSal emp.sal%type;
begin
  select sal into vSal from emp where empno = 7566;
  if (vSal < 1200) then
    dbms_output.put_line('小于1200');
  elsif (vSal < 2000) then
    dbms_output.put_line('小于2000');
  else
    dbms_output.put_line('大于2000');
  end if;
end;  
 
--loop循环
declare
  i binary_integer := 10;
begin
  loop
    dbms_output.put_line(i);
    i := i - 1;
    exit when(i < 1);
  end loop;
end;
 
--while循环
declare
  i binary_integer := 1;
begin
  while i < 11 loop
     dbms_output.put_line(i);
     i := i + 1;
  end loop;
end;
 
--for 循环
begin
  for i in 1..10 loop
    dbms_output.put_line(i);
  end loop;
  for i in reverse 1..10 loop
    dbms_output.put_line(i);
  end loop;
end;

转载于:https://www.cnblogs.com/javaTest/archive/2011/05/03/2589344.html

Oracle笔记 八、PL/SQL跳转/判断/循环语句块相关推荐

  1. oracle笔记一(sql语句方面)

    oracle笔记一(sql语句方面) 一.sql语句 --================================================ 1.增加主键    alter table ...

  2. Oracle Study之--PL/SQL Developer软件错误

    Oracle Study之--PL/SQL Developer软件错误 博文在51cto和CSDN同时开通 系统环境: 操作系统: Windows  XP(64) 软件:          PL/SQ ...

  3. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  4. 【学亮IT手记】oracle远程连接工具PL/SQL Developer的安装使用教程

    [学亮IT手记]oracle远程连接工具PL/SQL Developer的安装使用教程 客户端远程连接oracle,可以使用oracle自带的连接工具sqlplus,instanceclient_12 ...

  5. Windows 7 下安装 Oracle 数据库和 PL/SQL Developer

    win7下无论是32bits还是64bits,建议只安装oracle 11g 32bits,然后直接安装pl/sql developer,不需要额外的配置,就可以通过pl/sql developer来 ...

  6. 免安装Oracle客户端使用PL/SQL连接Oracle

    免安装Oracle客户端使用PL/SQL连接Oracle       大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Orac ...

  7. Oracle如何使用PL/SQL调试存储过程

    Oracle如何使用PL/SQL调试存储过程 PL/SQL中提供了[调试存储过程]的功能,可以完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在 ...

  8. Oracle实验五 PL/SQL编程

    Oracle实验五 PL/SQL编程 [实验目的] 熟悉PL/SQL的数据类型和书写规则 熟悉控制结构和游标的使用 编写和运行函数.过程和触发器 [实验内容] 编写脚本文件,调试运行脚本文件,并记录结 ...

  9. oracle 作业调度里pl/sql怎么写,PL/SQL实现Oracle数据库任务调度

    PL/SQL实现Oracle数据库任务调度 PL/SQL实现Oracle数据库任务调度 正在看的ORACLE教程是:PL/SQL实现Oracle数据库任务调度.摘要:本文主要就数据库恢复与系统任务的调 ...

最新文章

  1. How to configure cross-stack EtherChannel on Cisco Catalyst 3750 switches
  2. 已知三角形三边长怎么求面积_已知三角形三边求面积的公式——海伦公式
  3. How to determine if SAP CRM UI is extensible
  4. SharedSDK微信分享不成功,分享之后没有反应
  5. java和C++有什么异同
  6. 河北工程大学c语言期末考试及答案,河北工程大学之数据结构c语言版期末考试复习试题...
  7. 怎样将Redis以本地服务方式进行启动?
  8. 给CentOS添加第三方源(RPMForge源)
  9. mysql查处所有表中的新数据,mysql – 对所有表执行查询并在新表中填入数据
  10. JVM对象分配和GC分布【JVM】
  11. 应用之星教你制作高下载量的App
  12. 【链表】 链表的基本概念及分类
  13. 【分享】北京社保查询API
  14. webpack的基本使用03
  15. Linux 内核启动过程--head.S(arch/xxx/kernel下的)
  16. crm登录功能实现记住我
  17. 组件扫描器及spring头部配置文件的讲解
  18. Python爬取 美剧《纸牌屋》字幕(可可英语)---BeautifulSoup版
  19. spring自动装配原理
  20. SAP MM模块常用的标准报表

热门文章

  1. Linux通过kaggle api下载kaggle数据集
  2. Linux大文件切割命令split
  3. 机器学习知识点(二十八)Beta分布和Dirichlet分布理解
  4. 插入DLL和挂接API——Windows核心编程学习手札之二十二
  5. java调用net_Java调用C#.net开发的WebService
  6. delimiter mysql报错_MySql中的DELIMITER错误
  7. Spring Boot 入门——Spring Boot 简介||微服务简介
  8. 教你创建高大上的多边形字体
  9. Python 技巧篇-同一个方法多次引用不同效果功能实现,可选参数设置方法
  10. 按键处理技巧(状态机)