快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

oracle怎么存集合 oracle 集合操作

能否将Oracle存储过程的集合缓存起来

需要用到动态sql。

创新互联专注于宁化网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供宁化营销型网站建设,宁化网站制作、宁化网页设计、宁化网站官网定制、微信小程序开发服务,打造宁化网络公司原创品牌,更为您提供宁化网站排名全网营销落地服务。

1、首先要给用户赋予权限:

grant create any table to 用户名;

2、创建存储过程:

create procedure p_create_table

(v_sql varchar2)--输入建表语句

as

begin

execute immediate v_sql;

end;

3、执行:

oracle存储过程中循环查询返回多个结果集怎么集合在一起?_

利用游标将查询结果插入到一个表里!

或者存储到定义的数组中!

oracle存储过程中式用集合做参数

可以取,用substr函数和instr函数共同实现,但是实现起来不是太容易,费了好大劲给你取了v1和v2,那个v3你自己照个写一写吧,全当自己学习了

select substr('v1,v2,v3',1,instr('v1,v2,v3',',',1,1)-1) from dual;

select substr('v1,v2,v3',instr('v1,v2,v3',',',1,1)+1,(instr('v1,v2,v3',',',instr('v1,v2,v3',',',1,1)-1,2)-(instr('v1,v2,v3',',',1,1)+1))) from dual;

这两句在oracle中可直接运行,其中'v1,v2,v3'你可以用某个字段来代替

如何把数据表中的数据放在一个集合里面

比如你的表为user

你可以先创建一个类User,把数据库中的数据放入User对象中

再用集合存放每个User对象,如:

public ArrayList findAllUsers(){

ArrayList al=new ArrayList();

//循环查询数据库

while(...){

String name=....;//从数据库中查出

User user=new User();

user.name=name;

...以此类推

al.add(user);

}

return al;

}

oracle存储过程中循环查询返回多个结果集怎么集合在一起?

返回结果集合成什么样?

一条记录直接输出?

你可以把返回的结果插到一张表里,然后去看不就行了吗?

你可以把每次查询,改成每次插入一张表里,回过头再看结果集

oracle 集合使用

给你个范例:

CREATE OR REPLACE FUNCTION f_jax_str2tab(p_str IN VARCHAR2,

p_sep varchar2 default ','

) RETURN type_jax_varc2tab IS

/******************************************************************

Ver1.0 Created by jaxzhang on 2009-06-08

把字符串(1*2*3*4*5)转换为内存表形式

create or replace type type_jax_varc2tab is table of varchar2(2000);

测试用例:SELECT * FROM TABLE(f_jax_str2tab('1*2*3*4*5','*'));

******************************************************************/

v_str varchar2(2000);

v_cnt NUMBER ;

v_numtab type_jax_varc2tab := type_jax_varc2tab(); --返回内存表

BEGIN

select decode(substr(p_str,-1),p_sep,p_str,p_str || p_sep) into v_str from dual;

select length(v_str) - length(REPLACE(v_str, p_sep)) into v_cnt from dual;

FOR i IN 1 .. v_cnt LOOP

v_numtab.EXTEND;

v_numtab(i) := substr(v_str, 1, instr(v_str, p_sep) - 1);

v_str := substr(v_str, instr(v_str,p_sep) + 1);

END LOOP;

RETURN v_numtab;

EXCEPTION

WHEN OTHERS THEN

v_numtab.DELETE;

END;


分享题目:oracle怎么存集合 oracle 集合操作
URL标题:http://6mz.cn/article/hjhiog.html

其他资讯