Oracle存储过程-自定义数据类型,集合,遍历取值

摘要 Oracle存储过程,自定义数据类型,集合,遍历取值

目录[-]

  • 0.前言
  • 1.Packages
  • 2.Packages bodies
  • 3.输出结果
  • 0.前言

    在Oracle的存储过程中,可能会遇到数据处理,假如我们目前的功能在一个Packages中

    Packages封装了多个不同功能的Procedure,我们在一个Procedure里面进行统计

    在另外一个Procedure进行计算 这就需要一个存放结果集的地方

    以前的解决方案是:建立了一个临时表,数据统计出来后,放入临时表中

    在另外一个Procedure中取出来数据,再进行计算 这样需要读写操作 浪费性能

    我们可以使用Oracle的自定义数据类型去创建集合,进行操作

    1.Packages

    ?


    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    create or replace package test_lu is

      -- Author  : LUJIANING

      -- Created : 2014-3-12 11:27:34

      -- Purpose :

      

      -- Public type declarations

      procedure test1;

      

      procedure test2;

      

      procedure test3;

    end test_lu;

    2.Packages bodies

    ?


    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    create or replace package body test_lu is

      ---创建一个自定义数据类型

      TYPE c_user IS RECORD

        (   id number,

            name varchar2(30)

        ); 

      ---根据自定义数据类型创建一个集合

      TYPE c_user_array IS TABLE OF c_user INDEX BY BINARY_INTEGER; 

      ---集合对象

      user_array c_user_array;

      ---数据对象

      user c_user;

      ---计数器

      v_counter number;

           

      procedure test1 is

      begin

        user.id:=1;

        user.name:=‘luu‘;

        user_array(user.id):=user;

        

        user.id:=2;

        user.name:=‘lii‘;

        user_array(user.id):=user;   

        

      end;

      

      procedure test2 is

      begin

        for v_counter in 1..user_array.count loop

          DBMS_OUTPUT.put_line(user_array(v_counter).id||‘...‘||user_array(v_counter).name);

        end loop;       

      end;

      

      procedure test3 is

      begin

        test1;

        test2;

      end;

    end test_lu;

    3.输出结果

    ?


    1

    2

    1...luu

    2...lii

    时间: 2024-10-09 03:30:20

    Oracle存储过程-自定义数据类型,集合,遍历取值的相关文章

    Map 遍历取值及jstl的取值

    Map 遍历取值及jstl的取值 学习了:http://blog.csdn.net/yanjiaye520/article/details/17354239 1.Java map的便利取值 Java代码 收藏代码 Map<String,String> map = new HashMap<String,String>(); map.put("key1", "value1"); map.put("key2", "va

    二维json 遍历取值(前端网备份)

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>111</title> </head> <body class="gray-bg&qu

    第六讲 自定义数据类型

    为什么要使用自定义数据类型呢?原因很简单,在现实生活中,比如一个学生他有姓名,学号,年龄,身高,出生年月,而在上一讲中,我们提到的数据类型无法满足现实生活需求,这个时候,自定义数据类型该派上用场了,我们可以定一个学生类型.从而达到我们的需求了.自定义数据类型又可以分为子界类型,数组类型,记录类型,枚举类型,指针类型,集合类型等等... 下面分别对这些数据类型讲解 子界类型 子界类型定义了某种类型的取值范围(因此定名subrange).你可定义整数类型的子界类型,如取值从1到10或从100到100

    Oracle 存储过程学习

    Oracle 存储过程学习 目录 Oracle 存储过程 1 Oracle存储过程基础知识 1 Oracle存储过程的基本语法 2 关于Oracle存储过程的若干问题备忘 4 1. 在Oracle中,数据表别名不能加as. 4 2. 在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论了. 5 3. 在利用select...into...语法时,必须先确保数据库中有该条记录,否则会报出"no data found"异常. 5 4.

    Jquery操作复选框(CheckBox)的取值赋值实现代码

    赋值 复选框 CheckBox 遍历 取值 1. 获取单个checkbox选中项(三种写法): $("input:checkbox:checked").val() 或者 $("input:[type='checkbox']:checked").val(); 或者 $("input:[name='ck']:checked").val(); 复制代码 2. 获取多个checkbox选中项: $('input:checkbox').each(funct

    mysql实现oracle存储过程默认参数

    我们都知道oracle存储过程支持为参数设置默认值,这样即使存储过程升级,原来的调用也可以不受影响.但是mysql不支持,mariadb也没有支持(截止10.4也是如此).但是这一限制会导致升级麻烦重重.虽然如此,我们可以通过mysql 5.7/mariadb 10.2引入的json类型来变通实现.如下所示: drop function number_stats; CREATE FUNCTION number_stats(in_numbers JSON) RETURNS INTEGER NOT

    jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组、对象、Dom元素、二维数组、双层循坏、类json数据等等

    jQuery 遍历函数包括了用于筛选.查找和串联元素的方法. 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 获得匹配元素集合中每个元素的所有子元素. .closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素. .contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点. .each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数. .end(

    Oracle自定义数据类型 1

    原文 oracle 自定义类型 type / create type 一 Oracle中的类型 类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2.2.数值类型.如:int.number(p,s).integer.smallint.3.日期类型.如:date.interval.timestamp.4.PL/SQL类型.如:pls_integer.binary_integer.binary_double(10g).binary_fl

    PHP------定义数组,取值数组和遍历数组

    PHP数组 特点:可以存储任意类型的数据,可以不连续,可以是索引的也可以是关联的 什么是索引? 就是常见数组的样式,索引从开始,0,1,2,3,定义数组是直接往里面放值,只个索引自动生成,所以一般从0开始的,这样的数组是索引数组,索引是连续的. 什么是关联? 就是我们的哈希表集合,在定义的时候,必须给它一个key,一个values,这两个是关联的,通过key对应的values值是关联的. 1.定义数组 定义数组的第一种方式: 定义简单地索引数组 $a = array(1,2,3); 定义数组的第