---创建waterfall
create or replace type waterfall is object(name varchar2(30),height number);

--创建river
create or replace type rivertest is object(name varchar2(30),length number);

create or replace procedure anydataTest
/*
*该实例演示了一种在参数传递时可以在集合中传递多个不同数据类型元素的例子
*可以将不同数据类型的元素全部转换成anyData类型添加到集合中,然后在程序间
*通过集合来传递多个数据元素。
*然后在后续的处理中根据元素的实际类型分别调用对应类型的成员方法做相应的处理
*/
is
type feature_array is varray(2) of sys.anydata;
v_feature feature_array;
wf waterfall;
rv rivertest;
ret_val number;
v_index pls_integer;
begin
v_feature := feature_array(
anydata.convertobject(
waterfall('waterfall1',12)
),
anydata.convertobject(
rivertest('rivertes',34)
)
);
--遍历集合
v_index := v_feature.first;
while(v_index is not null)
loop
case v_feature(v_index).gettypename
when 'BISBNK.WATERFALL' then
ret_val := v_feature(v_index).getobject(wf);
dbms_output.put_line('waterfall name:'||wf.name ||' height:'||wf.height);
when 'BISBNK.RIVERTEST' then
ret_val := v_feature(v_index).getobject(rv);
dbms_output.put_line('river name:'||rv.name ||' length:'||rv.length);
else
dbms_output.put_line('unknow type:'||v_feature(v_index).gettypename);
end case;
v_index := v_feature.next(v_index);
end loop;
exception
when no_data_found then
dbms_output.put_line('no data found');
raise;
when others then
dbms_output.put_line(sqlcode||': '||sqlerrm);
raise;
end;

oracle中anyData数据类型的使用实例的更多相关文章

  1. Oracle中的数据类型和数据类型之间的转换

    Oracle中的数据类型 /* ORACLE 中的数据类型: char 长度固定 范围:1-2000 VARCHAR2 长度可变 范围:1-4000 LONG 长度可变 最大的范围2gb 长字符类型 ...

  2. [转]oracle的ANYDATA数据类型

    本文转自:http://blog.csdn.net/yuzhenhuan01/article/details/6606106 ANYDATA数据类型是个有点奇特的类型,你可以把不同数据类型的数据通过转 ...

  3. 【Oracle】Oracle中复合数据类型

    1,常见的操作数据库的技术有那些 jdbc     使用java 访问数据库的技术    PLSQL  (procedure  过程化sql) 在数据库内部操作数据的技术    proc/c++    ...

  4. oracle中RAW数据类型

    近日在研究v$latch视图时,发现一个从未见过的数据类型.v$latch 中ADDR属性的数据类型为RAW(4|8)  同时也发现v$process中的ADDR属性的数据类型也为RAW(4|8).于 ...

  5. Oracle中的数据类型

    数据类型 数据类型是在设计表结构中需要定义的,选择适当的数据类型可以节省存储空间,提高运算效率. Oracle数据类型主要包括 1.字符型 适合保存字符串类型的数据,如姓名.地址.简介等等. 如:ch ...

  6. C# 与 Oracle 中 BINARY_DOUBLE数据类型查询

    Oracle 10g新增 BINARY_DOUBLE 数据类型,而.NET暂不支持这个类型,查询时需要转换为 NUMBER. eg: "SELECT RAWTOHEX(OID) AS OID ...

  7. Oracle中Merge into的用法实例讲解

    最近在做一个需求,就是涉及到表的问题,前端传过来一条数据,根据主键,查询数据库,如果不存在,那么久插入到数据库中一条,如果存在的话,就是以主键的方式,对数据库中的数据,进行更新. 拿到这个需求的时候, ...

  8. Oracle中CASE WHEN的用法实例

    实例演示: (1)查询表users中的数据. select u.id,u.realname,U.SEX from users u; 查询结果如下 ID    REALNAME SEX 1  10082 ...

  9. Oracle中Table函数简单应用实例

    说明 表函数可接受查询语句或游标作为输入参数,并可输出多行数据. 该函数可以平行执行,并可持续输出数据流,被称作管道式输出. 应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表. 优势 1 ...

随机推荐

  1. 如何在hadoop中控制map的个数

    hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数.但是通过这种方式设置map的个数,并不是每次都有效的.原因是mapred.map. ...

  2. 为Mac自带的Apache配置PHP和虚拟机

    操作系统:os x 10.11.2 1.启动apache 打开终端(terminal),输入命令:sudo apachectl -k start ; 在浏览器地址栏中输入:http://localho ...

  3. wordpress安装地址与博客地址

    可千万别乱改动你的wordpress安装地址和博客地址 一月 27th, 2009 Posted in web学习, 博客建设 | 12 Comments » 我最近一个月学习数据库的一些使用,把他爱 ...

  4. 算法导论--python--插入排序

    #!/usr/local/python35/bin/python3.5 #### insert sort if __name__=="__main__": var_list=[3, ...

  5. python描述符 descriptor

    descriptor 在python中,如果一个新式类定义了__get__, __set__, __delete__方法中的一个或者多个,那么称之为descriptor.descriptor通常用来改 ...

  6. SVN上传代码时代码失败

    Description : You are not authorized to access the files in the repository.Suggestion : You might be ...

  7. hdu 4302 Holedox Eating

    http://acm.hdu.edu.cn/showproblem.php?pid=4302 #include <cstdio> #include <cstring> #inc ...

  8. winform程序中Label自动换行

    参考的是网上这篇文章:http://www.cnblogs.com/qb371/archive/2011/09/20/2366310.html 不过貌似注释有点问题,我的代码如下,我是将label放在 ...

  9. unix c 07

    进程的结束函数 (exit._Exit)    exit 并不是立即退出,退出前执行 用atexit/on_exit函数 注册的函数.    exit(int status)中的status可以用 w ...

  10. Check whether a given Binary Tree is Complete or not 解答

    Question A complete binary tree is a binary tree in which every level, except possibly the last, is ...