oracle 数组的用法,oracle存储过程中数组的使用

create or replace package ArrayTestPKG1 is

type tt_type is table of varchar(32) INDEX BY BINARY_INTEGER;  --- 定义数组

type table2 is table of tableA.columnA%type index by binary_integer;

function toArray(Liststr in varchar, V1 out tt_type) return number;

Procedure test;

END ArrayTestPKG1;

/

show errors;

create or replace package body ArrayTestPKG1 is

function toArray(Liststr in varchar, V1 out tt_type) return number is

TmpStr varchar(32);

Str    varchar(4000);

j      number;

begin

Str := Liststr;

j   := 0;

IF Instr(Liststr, ',', 1, 1) = 0 THEN

V1(j) := Liststr;

j := j + 1;

else

While Instr(str, ',', 1, 1) > 0 Loop

TmpStr := Substr(str, 1, Instr(str, ',', 1, 1) - 1);

V1(j) := TmpStr;

str := SubStr(Str, Instr(str, ',', 1, 1) + 1, length(str));

j := j + 1;

end loop;

if not str is null then

--将最后一个保存

V1(j) := str;

j := j + 1;

end if;

end if;

return J;

EXCEPTION

WHEN OTHERS THEN

dbms_output.put_line('sqlerrm:'||sqlerrm);

end;

--计算某一天所有上下文的消费数据

Procedure test Is

t1 tt_type;

v_char varchar(150):='';

v_cnt  number:=0;

Begin

dbms_output.put_line('start!!!');

v_char:='aaaa,bbbb,cccc,dddd,eee,ffff';

v_cnt := toArray(v_char,t1);

dbms_output.put_line('v_char:'||v_char);

dbms_output.put_line('v_cnt:'||v_cnt);

dbms_output.put_line('t1:'||t1(3));

dbms_output.put_line('end!!!');

End;

begin

-- Initialization

Null;

end ArrayTestPKG1;

/

show errors;

SQL> exec ArrayTestPKG1.test;

start!!!

v_char:aaaa,bbbb,cccc,dddd,eee,ffff

v_cnt:6

t1:dddd

end!!!

PL/SQL procedure successfully completed.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XP的一些小结

XP的一些小结 最近博客上关于XP的讨论也有不少文章,也很火热,我觉得:与其象有的人说的,XP是否适应国情,倒不如书XP是否适应具体的项目,具体的开发小组,具体的环境。我想起了在大学毕业设计时&am…

python整数转换字符串_使用Python中的str()函数将整数值转换为字符串

python整数转换字符串Given an integer value and we have to convert the value to the string using str() function. 给定一个整数值,我们必须使用str()函数将该值转换为字符串。 Python code to convert an integer value to the string value Python代码将整数…

2011年:签到已死?

导读:作为移动互联网最受关注的热点之一,各式LBS应用一度大量涌现,但其发展局限也越来越被更多的业界同行清楚认知,LBS只是一个功能特性还是可以支撑起一个产品?签到如何添加黏性和用户核心需求结合?LBS厂商…

Pip:基本命令和使用的指南,实现有效的包管理

目录 学习目标: 学习内容: 学习时间: 学习产出: 介绍 Pip 工具:Pip 是 Python 包管理工具,可以帮助用户方便地安装、管理和升级 Python 包: 安装 Pip 工具:学习如何在不同操作系统上…

div指令

功能: 除法 格式: div 寄存器 div 内存单元注解 除数:有8位和16位两种,在寄存器或内存单元中被除数:如果除数为8位,被除数则为16位,默认放在AX中,如果除数为16位,被除数…

RCP的布局

如果按照网上的例子创建出来的rcp只是一个空框架,如果你想显示出在插件里正常工作的界面,你需要在你自己的透视图类的createInitialLayout方法里布局界面。 在窗口底部显示属性页: layout.addView("org.eclipse.ui.views.PropertySheet&…

oracle dg 搭建方式,Linux平台 Oracle 11g DG测试环境快速搭建参考

环境现状:两台虚拟主机A和B:1. A机器已安装ASM存储的Oracle 11g 实例2. B机器已安装系统,配置以及目录结构均和A机器保持一致/u01 3块ASM盘DG部署规划:primarystandby主机JY-DBJY-DBSdb_namejyzhaojyzhaodb_unique_namejyzhaojyz…

C#| 使用String.Format()方法将小数点后的数字四舍五入

To round the digits after the decimal point, we can use String.Format() method, here is the example. 为了将小数点后的数字四舍五入,我们可以使用String.Format()方法,这里是示例。 using System;namespace ConsoleApplication1{class Program{s…

SmartFoxServer学习总结(转载)

一、要安装pro类型版本,此类型版本支持的功能较多,我安装的是SmartFoxServerPRO_1.6.2二、需要java虚拟机支持,最好安装jre-6u7-windows-i586-p-s.exe,把Java\jre1.6.0_07文件夹下的所有文件复制,覆盖到SmartFoxServerPRO_1.6.2\j…

dup和dd指令

dup 功能: 和数据定义的伪指令配合使用,用来进行数据的重复 格式: 数据类型 重复的次数 dup (重复的数据) db 3 dup(0)相当于db 0,0,0;定义了3个字节,他们的字节都是0 db 3 dup(0,1,2)相当于 db 0,1,2&…

汇编指令(转)

一、数据传输指令  它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.  1. 通用数据传送指令.    MOV  传送字或字节.    MOVSX 先符号扩展,再传送.    MOVZX 先零扩展,再传送.    PUSH  把字压入堆栈.    POP  把字弹出堆栈.    …

oracle10g 克隆安装,克隆Oracle Home(10g2)

克隆一个已经存在的Oracle Home,免掉新安装oracle10g软件的痛苦,如果原Oracle Home已经安装了patch就省得打patch了。一、在目标主机172.19.111.37上做安装前准备工作1、增加组和用户(和克隆主机的目录结构一样)# groupadd oinstall# groupadd dba# user…

取地址符和解引用符的区别_(&)和解引用(*)运算符的地址以及C中的指针...

取地址符和解引用符的区别Here, we are discussing about the two most useful operators with the pointers, why and how they are used? 在这里,我们用指针讨论两个最有用的运算符 ,为什么以及如何使用它们? 1)运营商地址(&)…

汇编offset

功能: 取标号的偏移地址 assume cs:codesg codeseg segmentstart:mov ax,offset starts: mov ax,offset s codeseg ends end startmov ax,offset start 相当于mov ax,0,因为start是代码段中的标号,他所标记的指令是代码中的第一条指令&#…

細微之處看看mysql與sql server的一些差別

以前不怎麼使用mysql,最近有些事情,需要用到php和mysql。目前使用的版本是5.5.1 發現mysql與sql server有很多不同。可能逐漸地會整理一些文檔出來給大家參考。 今天第一篇說說,update操作的差異。在mysql中,如果update語句要設置…

php商品状态精品 热销,ecshop商品列表,商品详细页,热销,精品,搜索列表页调用商品销售量(已销售数量)...

ecshop各个页面调用商品销售量方法(原创可用)ECSHOP模板首页的推荐商品包括热销推荐和促销三个文件只对热销商品为例第一步:打开根目录/includes/lib_goods.php文件。在文件末尾添加方法function selled_count($goods_id){$sql "select sum(goods_number) as c…

c ++ stl_通过分配另一个列表的所有元素来创建列表| C ++ STL

c stlThere are two methods to implement it... 有两种方法可以实现它... 1 ) by assigning the existing list direct to the new list 1)通过直接将现有列表分配给新列表 list<int> list2 list1;2 ) by using list::assign() function 2)通过使用list :: assign(…

引用参数

• 默认情况下CLR规定所有方法的参数都按值传递的 • 参数类型分为:值类型参数和引用类型参数 • 参数传递方式:传值方式和传址方式 • Ref和Out的共同:传址传递 • Ref和Out的异同:ref修饰的参数必须在传递前对参数进行初始化;out反之,且必须在参数返回前进行初始化赋值 •在值…

jmp指令

功能&#xff1a; 无条件转移指令 jmp指令要给出两种信息&#xff1a; 转移的目标地址转移的距离&#xff08;段间转移、段内短转移、段内近转移&#xff09; 段内短转移&#xff1a; jmp short 标号&#xff09; assume cs:code code segmentstart:mov ax,0jmp short sad…

基于NIOS II的液晶显示设计——自定义图形库

基于NIOS II的液晶显示设计——自定义图形库 下面是我写的简单图形库 // graphics.h / #ifndef GRAPHICS_H_#define GRAPHICS_H_ #include"IO.h"#include"system.h"#include"alt_types.h"//定义SRAM缓存的基地址 #define SRAM_BASE LC…