文档章节

oracle 存储过程基础

陈爱茹cx1992
 陈爱茹cx1992
发布于 2016/07/26 17:34
字数 368
阅读 1
收藏 0
点赞 0
评论 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

SAS学习笔记

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

开拓者-2017 ⋅ 2015/12/24 ⋅ 2

Oracle如何平衡“软+硬”之道?

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

it168网站 ⋅ 2014/04/02 ⋅ 0

ORACLE JOB 使用基础

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

battier ⋅ 2011/07/12 ⋅ 0

oracle常见基础知识

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

Gong_Chen ⋅ 2016/04/04 ⋅ 0

Oracle存储过程创建及调用 java调用oracle存储过程的示例总结

在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器。在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的。相对来说,数据库系统中的...

梅_95 ⋅ 2016/09/13 ⋅ 0

Linux系统Oracle12.2 RAC集群实施维护_Oracle数据库12cR2(项目实战之五)

课程目标 风哥Oracle数据库教程12cR2(项目实战系列)之五:Linux系统上Oracle 12.2 RAC实施与基本维护,包括系统安装与环境配置、ASM存储配置、Oracle 12cR2 RAC集群软件安装、RAC数据库软件...

风哥Oracle ⋅ 2017/06/12 ⋅ 0

修改ip地址之后oracle连接不上

问题场景:在工作中开始两台电脑单机开发,后面由于有条件就决定将两台电脑通过一根网线组成一个局域络。于是分别在两台电脑分别设置ip地址。设置ip地址之后电脑重新启动后数据库通过dbvisua...

科比可比克 ⋅ 2016/03/29 ⋅ 0

Oracle数据库SQL注入浅析与防护建议

作者:安华金和 思成 SQL注入是在信息安全领域一种常见的攻击手段。但是大部分人理解的SQL注入就是通过把SQL命令插入到Web表单提交或在输入域名、页面请求时加入的查询字符串,最终达到欺骗服...

安华金和 ⋅ 2016/01/27 ⋅ 0

手动删除oracle数据库

oracle数据库sqldatabaseloggingfile --===================== -- 手动删除oracle数据库 --===================== 的具体步骤,包含文件系统数据库以及ASM数据库。环境:Oracle Enterprise L...

燃灯 ⋅ 2014/11/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 16分钟前 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部