文档章节

oracle 存储过程基础

陈爱茹cx1992
 陈爱茹cx1992
发布于 2016/07/26 17:34
字数 368
阅读 1
收藏 0
-- 1、创建简单存储过程,将学生年龄都改为10
    create or replace procedure update_students
    as
    begin update students set student_age = 10;
    commit;
    end update_students;
-- 2、查看存储过程在数据字典中的信息
   select object_name,object_type,status from user_objects where object_name='UPDATE_STUDENTS'
-- 3、查看创建存储过程sql
   select * from user_source where name='UPDATE_STUDENTS';
-- 4、调用
   call update_students();
   
   /** 存储过程的参数分为 in传入参数,out 传出参数, in out 传入传出参数**/
-- A:创建 in参数类型 的存储过程
  --eg1 要求:创建按传入的值修改学生年龄的存储过程
  create or replace procedure update_students_in(in_age in number)
  as
  begin
    update students set student_age = in_age;
    commit;
  end update_students_in;
  -- 执行,将学生年龄改为12
  call update_students_in(12);
  -- 查询STUDENTS,看是否修改成功
  select * from STUDENTS t;

    -- (说明in参数不可修改)举例当尝试修改in参数的值时会报错!
    create or replace procedure update_students_in(in_age in number)
    as
    begin
      update students set student_age = in_age;
      in_age :=in_age+10;
      commit;
    end update_students_in;

-- B:创建 out参数类型 的存储过程
   --要求:返回学生id=1的修改后的年龄
   create or replace procedure update_students_out(in_age in number,out_age out number) as
   begin
     update students set student_age = in_age;
     select student_age into out_age from students where student_id = 1;
     commit;
    end update_students_out;
    
    -- 测试
    declare 
    out_updatedAge number;
    begin
     update_students_out(20,out_updatedAge);
       dbms_output.put_line(out_updatedAge);
    end;
    
-- C:in out 参数:交换两个变量的值
  create or replace procedure swap(in_out_param1 in out number, in_out_param2 in out number)
  as
  begin
    declare v_param number;
    begin
      v_param := in_out_param1;
      in_out_param1:=in_out_param2;
      in_out_param2 := v_param;
     end;
   end;
   -- 测试
   declare
    param1 number:=25;
    param2 number:=55;
    begin
           swap(param1,param2);
           dbms_output.put_line('param1=' || param1);
           dbms_output.put_line('param2=' || param2);
    end;

本文转载自:http://blog.csdn.net/ruru7989/article/details/12348875

共有 人打赏支持
陈爱茹cx1992
粉丝 0
博文 59
码字总数 0
作品 0
济南
程序员
Winform开发框架之存储过程的支持--存储过程的实现和演化提炼(1)

在我前面很多篇关于框架设计和介绍的文章里面,大多数都是利用框架提供的基础性API进行各种的操作,包括增删改查、分页等各种实现和其衍生的实现,而这些实现绝大多数是基于SQL的标准操作实现...

walb呀
2017/12/04
0
0
SAS学习笔记

SAS编程语言 学习一门语言重要的是打好语法基础,所以,从最基础的开始。 逻辑库是SAS编程语言的一个重要知识点,是数据步和过程步读取数据集或关系数据库中的表或者存储路径下对应文件的桥梁...

开拓者-2017
2015/12/24
69
2
Oracle如何平衡“软+硬”之道?

  【IT168旧金山特别报道】“Oracle是一家非常重视研发的企业,每年大概有50亿美元的研发投入。无论数据库,还是ERP或CRM等产品,Oracle都希望实现同类最佳,也就是Oracle一直贯彻的 ‘同类...

it168网站
2014/04/02
0
0
ORACLE JOB 使用基础

一、ORACLE JOB概述 定时在后台执行相关操作。 例如:每天晚上点将一张表的数据保存到另一张表中;定时备份数据库等操作。 二、创建ORACLE JOB 1、 创建表 /1、创建表/ create table job_ta...

battier
2011/07/12
0
0
oracle常见基础知识

oracle使用的脚本语言称为什么? PL-SQL oracle中游标的分类? oracle中游标分为两类:显示游标和隐式游标 oracle中function与procedure的区别? (1) function一定要有返回值,但procedure不...

Gong_Chen
2016/04/04
84
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
5
2
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部