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 集合操作
文章出自:https://www.cdcxhl.com/article6/hjhiog.html

成都网站建设公司_创新互联,为您提供营销型网站建设网站改版电子商务建站公司外贸建站标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名