`
arne3166
  • 浏览: 130365 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle 数据库学习-存储过程

阅读更多

Oracle 数据库学习-存储过程

 

  SQL中循环和分支的写法

create or replace procedure basePro is
  num number default 0;
begin
 
 --loop循环
  loop
    Dbms_Output.put_line('loop...end loop' || num);
    exit when(num > 2);
    num := num + 1;
  end loop;

  --while loop循环
  while (num < 6) loop
    Dbms_Output.put_line('while...end loop' || num);
    num := num + 1;
  end loop;

  --for loop循环
  for i in 1 .. 4 loop
    Dbms_Output.put_line('for...end loop' || i);
  end loop;

  num := 5;
  if num < 10 then
    Dbms_Output.put_line('if num < 10');
  elsif num < 20 then
    Dbms_Output.put_line('if num < 20');
  else
    Dbms_Output.put_line('if num < 30');
  end if;

  case
    when num < 10 then
      Dbms_Output.put_line('case num < 10');
    when num < 20 then
      Dbms_Output.put_line('case num < 10');
    else
      Dbms_Output.put_line('case num < 30');
  end case;
  
  
  
--自己抛出异常  
raise_application_error(-20000,'bug bug');

  insert into test values (1, '33');
  commit;
  
exception
 
     
  when others then
    Dbms_Output.put_line('insert erroer'||sqlcode||sqlerrm);
  
end basePro;
/

 

 

 

create or replace procedure bigNumInsert(arg1 in out default 0  number  , arg2 varchar2) is
  newid number default 0;
begin
  dbms_output.put_line(arg1);
  dbms_output.put_line(arg2);
  dbms_output.put_line(newid);

  while (arg1 < 1000) loop
    select nvl(max(id), 0) into newid from test;
    newid := newid + 1;
    insert into test values (newid, arg2 || arg1);
 
    arg1 := arg1 + 1;
  end loop;
  

update test t set t.name='4';
   dbms_output.put_line(SQL%rowcount);
  
  commit;

end;
/

 

 

 

prompt
prompt Creating procedure CURSOR1
prompt ==========================
prompt
create or replace procedure cursor1 is
  num number default 0;
  cursor c1 is
    select * from emp;

  emprow emp%rowtype;
begin

  --简单的游标

  for i in (select * from emp) loop
    dbms_output.put_line(i.EMPNO);
  end loop;
  --简单的游标2
  for i in c1 loop
    dbms_output.put_line(i.ENAME);
  end loop;

--通常的用法
  open c1;
  loop
    fetch c1
      into emprow;
    exit when c1%notfound;
    dbms_output.put_line(emprow.empno || ' ' || emprow.ENAME);
  end loop;
  close c1;
  
  
  --隐式游标
  
end cursor1;
/

 

 

 

 

create or replace procedure cursor2 is
  --num number default 0;
  --type ref_cursor is ref cursor;
  c1     p1.ref_cursor;
  emprow emp%rowtype;
  sqlString varchar2(2000);
begin

--动态sql

  sqlString := 'select * from emp t where t.empno=  7369';
  open c1 for sqlString;
  loop
    fetch c1
      into emprow;
    exit when c1%notfound;
    dbms_output.put_line(emprow.ename);
  end loop;
  close c1;

  sqlString := 'select * from emp t where t.empno=  :empno';
  open c1 for sqlString
    using 7369;
  loop
    fetch c1
      into emprow;
    exit when c1%notfound;
    dbms_output.put_line(emprow.ename);
  end loop;
  close c1;
end cursor2;
/

 

0
1
分享到:
评论

相关推荐

    Oracle数据库--存储过程、函数、触发器和包.pptx

    Oracle数据库--存储过程、函数、触发器和包.pptx

    Oracle数据库培训-PLSQL编程

    Oracle数据库培训-PLSQL编程

    Oracle数据库管理--创建数据库.pptx

    Oracle数据库管理是指对Oracle数据库进行管理和维护的过程。创建数据库是Oracle数据库管理的重要一步骤,本章节将详细介绍创建数据库的步骤和要点。 一、数据库规划 数据库规划是创建数据库的第一步骤。数据库规划...

    ORACLE数据库教程-SQL学习篇.ppt

    创建用户是学习过程中的第一步,通过`CREATE USER`语句来创建新的数据库用户。在创建用户后,需要赋予用户相应的权限,如`CONNECT`和`RESOURCE`,以便他们能够连接到数据库并创建数据库对象。如果没有足够的权限,...

    oracle数据库管理--初级

    本课程“Oracle数据库管理--初级”旨在为初学者提供一个基础的Oracle DBA(数据库管理员)学习路径,帮助他们理解Oracle数据库的核心概念、安装配置以及基本管理操作。 Oracle数据库的基础知识包括以下几个关键点:...

    Oracle数据库SQL-第6章存储过程、函数和包

    详细讲解Oracle数据库SQL-第6章存储过程、函数和包,其中有例子

    oracle数据库应用-dt0-董天宁.docx

    在"Oracle数据库应用-dt0-董天宁.docx"文档中,内容主要涵盖了Oracle数据库的基础知识,包括Oracle的简介、安装过程、客户端工具的使用、服务管理以及用户与权限管理。 1. Oracle简介: Oracle数据库系统是企业级的...

    accp4.0ORACLE数据库应用-PPT

    1. **数据存储**:Oracle数据库使用表空间来存储数据,表空间由一个或多个数据文件组成。数据文件是Oracle存储数据的物理文件,可以分布在不同的磁盘上,以实现I/O负载均衡。 2. **SQL支持**:Oracle完全支持SQL...

    Oracle数据库管理--教案.docx

    通过本课程的学习,学生不仅能了解Oracle数据库的基本原理,还能通过实践提升维护大型数据库系统的能力,从而提高就业竞争力。同时,课程设计也注重培养学生的创新精神和实践能力,以适应不断变化的IT行业需求。

    oracle-xe-11.2.0-1.0.x86_64.rpm.zip

    Oracle XE 11.2.0 是一款...Oracle XE 11.2.0 是一个强大且易于入门的数据库解决方案,尤其适合学习 Oracle 数据库基础、开发小型项目或进行测试环境搭建。通过理解其特性、安装流程以及日常管理,可以充分发挥其价值。

    Oracle数据库进阶 高可用性、性能优化和备份恢复

    总的来说,Oracle数据库的进阶学习涵盖了从高可用架构的设计到性能瓶颈的排查和解决,再到数据安全的保障,每一个环节都至关重要。通过深入理解和掌握这些知识点,数据库管理员能够确保系统的稳定运行,提升业务效率...

    Oracle通用数据库存储过程代码--高效分页存储过程

    标题“Oracle通用数据库存储过程代码——高效分页存储过程”表明这是一个适用于Oracle数据库的存储过程,主要用于实现高效的分页查询功能。 #### 描述解析 描述部分简述了此存储过程的特点:“Oracle通用数据库存储...

    Oracle数据库学习课件

    Oracle数据库学习课件是一套全面介绍Oracle数据库技术的教育资源,涵盖了从基础知识到高级应用的各个方面。Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据主导地位。通过这套课件,...

    Oracle Database 11g Administration Workshop II (数据库管理-课堂练习II 学生指南第3册)

    综上所述,Oracle Database 11g Administration Workshop II这门课程旨在深化学员对Oracle数据库管理的理解和技能,通过理论与实践相结合的方式,让学员掌握数据库体系结构、存储管理、备份恢复等核心领域的知识和...

    Oracle数据库实用指南-赵元杰编著

    ### Oracle数据库实用指南知识点概述 #### 一、Oracle数据库概览 - **Oracle数据库系统**:本书主要介绍了Oracle 8i/9i版本的数据库,这些版本提供了强大的数据管理和处理能力,适合各种规模的企业级应用。 - **...

    Oracle数据库系统安全加固规范

    Oracle数据库系统安全加固规范 Oracle数据库系统安全基线规范是为了确保Oracle数据库系统的安全运行,防止未经授权的访问、数据泄露和破坏。以下是该规范的知识点总结: 账号管理 账号管理是Oracle数据库系统安全...

    oracle-database-server-12cR2-preinstall

    2. **系统调整**:预安装过程会检查并调整操作系统的参数,如内核参数、内存分配、磁盘空间和文件系统类型,以优化Oracle数据库的运行环境。 3. **用户和组设置**:创建并配置Oracle相关的用户和组,例如`oracle`...

    Oracle数据库基础教程-参考答案

    ### Oracle数据库基础教程核心知识点详解 #### 一、Oracle数据库概览 - **数据与数据库概念**:数据作为描述事物的符号,在计算机中以记录形式存储。数据库则是按一定数据模型组织、描述和存储的数据集合,由...

Global site tag (gtag.js) - Google Analytics