真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle怎么寫集合,oracle取合集

在oracle數(shù)據(jù)庫分組查詢的結(jié)果怎么再java里用集合接受起來,方法怎么寫?急求

不懂 你為什么要用集合接受起來

你所需要的網(wǎng)站建設服務,我們均能行業(yè)靠前的水平為你提供.標準是產(chǎn)品質(zhì)量的保證,主要從事成都做網(wǎng)站、網(wǎng)站建設、企業(yè)網(wǎng)站建設、手機網(wǎng)站制作設計、網(wǎng)頁設計、品牌網(wǎng)站設計、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)公司擁有實力堅強的技術研發(fā)團隊及素養(yǎng)的視覺設計專才。

首先 你可以把

oracle

分組查新到的數(shù)據(jù)封裝成 一個bean 類

然后把bean類存到 list即可

Oracle 中實現(xiàn)java List的功能

可以用集合

一,index_by表

TYPE TYPE1 IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;

1.使用的時候需要先賦值后讀取,至少也要先初期化一下,否則會出現(xiàn)異常:ORA-01403: no data found。

2.這種數(shù)組不需要事先指定上限,下標可以不連續(xù),可以是0或負數(shù)。

例:v1 TYPE1;

v1(-1) := '-1';

v1(0) := '0';

v1(1) := '1';

DBMS_OUTPUT.put_line(v1(-1)); --訪問合法

DBMS_OUTPUT.put_line(v1(2)); --訪問非法

二:

集合還有很多內(nèi)建函數(shù),這些函數(shù)稱為方法,調(diào)用方法的語法如下:

collection.method

下表中列出oracle中集合的方法

方法 描述 使用限制

COUNT 返回集合中元素的個數(shù)

DELETE 刪除集合中所有元素

DELETE(x) 刪除元素下標為x的元素,如果x為null,則集合保持不變 對VARRAY非法

DELETE(x,y) 刪除元素下標從X到Y(jié)的元素,如果XY集合保持不變 對VARRAY非法

EXIST(x) 如果集合元素x已經(jīng)初始化,則返回TRUE, 否則返回FALSE

EXTEND 在集合末尾添加一個元素 對Index_by非法

EXTEND(x) 在集合末尾添加x個元素 對Index_by非法

EXTEND(x,n) 在集合末尾添加元素n的x個副本 對Index_by非法

FIRST 返回集合中的第一個元素的下標號,對于VARRAY集合始終返回1。

LAST 返回集合中最后一個元素的下標號, 對于VARRAY返回值始終等于COUNT。

LIMIT 返回VARRY集合的最大的元素個數(shù),對于嵌套表和Index_by集合無用。

NEXT(x) 返回在元素x之后及緊挨著它的元素的值,如果該元素是最后一個元素,則返回null。

PRIOR(x) 返回集合中在元素x之前緊挨著它的元素的值,如果該元素是第一個元素,則返回null。

TRIM 從集合末端開始刪除一個元素 對index_by不合法

TRIM(x) 從集合末端開始刪除x個元素 對index_by不合法

============================================================================================================================================

三:舉例

包頭:

create or replace package part_version is

type t_part_id_array is table of part_family.part_id%type index by pls_integer

procedure sameold_part_family(p_part_id in t_sub_part_id_array,

v_out out varchar2);

end appendant_change_part_version;

包體

create or replace package body part_version is

procedure sameold_part_family(p_part_id in t_sub_part_id_array,

v_out out varchar2) is

v_count_old pls_integer;

v_count_min pls_integer;

begin

.....

end;

end appendant_change_part_version;

如何在ORACLE中定義一個數(shù)組

集合:是具有相同定義的元素的聚合。Oracle有兩種類型的集合:

可變長數(shù)組(VARRAY):可以有任意數(shù)量的元素,但必須預先定義限制值。

嵌套表:視為表中之表,可以有任意數(shù)量的元素,不需要預先定義限制值。

在PL/SQL中是沒有數(shù)組(Array)概念的。但是如果程序員想用Array的話,就得變通一下,用TYPE 和Table of Record來代替多維數(shù)組,一樣挺好用的。

emp_type 就好象一個table 中的一條record 一樣,里面有id, name,gender等。emp_type_array 象個table, 里面含有一條條這樣的record (emp_type),就象多維數(shù)組一樣。

--單維數(shù)組

DECLARE

TYPE emp_ssn_array IS TABLE OF NUMBER

INDEX BY BINARY_INTEGER;

best_employees emp_ssn_array;

worst_employees emp_ssn_array;

BEGIN

best_employees(1) := '123456';

best_employees(2) := '888888';

worst_employees(1) := '222222';

worst_employees(2) := '666666';

FOR i IN 1..best_employees.count LOOP

DBMS_OUTPUT.PUT_LINE('i='|| i || ', best_employees= ' ||best_employees(i)

|| ', worst_employees= ' ||worst_employees(i));

END LOOP;

END;

--多維數(shù)組

DECLARE

TYPE emp_type IS RECORD

( emp_id employee_table.emp_id%TYPE,

emp_name employee_table.emp_name%TYPE,

emp_gender employee_table.emp_gender%TYPE );

TYPE emp_type_array IS TABLE OF emp_type INDEX BY BINARY_INTEGER;

emp_rec_array emp_type_array;

emp_rec emp_type;

BEGIN

emp_rec.emp_id := 300000000;

emp_rec.emp_name := 'Barbara';

emp_rec.emp_gender := 'Female';

emp_rec_array(1) := emp_rec;

emp_rec.emp_id := 300000008;

emp_rec.emp_name := 'Rick';

emp_rec.emp_gender := 'Male';

emp_rec_array(2) := emp_rec;

FOR i IN 1..emp_rec_array.count LOOP

DBMS_OUTPUT.PUT_LINE('i='||i

||', emp_id ='||emp_rec_array(i).emp_id

||', emp_name ='||emp_rec_array(i).emp_name

||', emp_gender = '||emp_rec_array(i).emp_gender);

END LOOP;

END;

-------------- Result --------------

i=1, emp_id =300000000, emp_name =Barbara, emp_gender = Female

i=2, emp_id =300000008, emp_name =Rick, emp_gender = Male

誰對oracle 中的集合比較熟悉,求幫忙。

集合的用法也就是 索引表、嵌套表及數(shù)組(array)的用法,在網(wǎng)上搜搜語法吧。

ORACLE存儲過程能建立動態(tài)集合嗎

 需要用到動態(tài)sql。

1、首先要給用戶賦予權(quán)限:

grant create any table to 用戶名;

2、創(chuàng)建存儲過程:

create procedure p_create_table

(v_sql varchar2)--輸入建表語句

as

begin

execute immediate v_sql;

end;

3、執(zhí)行:

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)轉(zhuǎn)換為內(nèi)存表形式

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(); --返回內(nèi)存表

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取合集
網(wǎng)站URL:http://weahome.cn/article/hdhohj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部