陣列 二維陣列 及型別,儲存過程呼叫 sql

2021-05-11 13:15:27 字數 2508 閱讀 7237

create table parent(

id number(10),

name varchar2(100),

title varchar2(10)

);create table child(

id number(10),

parent_id number(10),

child_name varchar2(100),

child_title varchar2(10),

child_content varchar2(200),

child_time timestamp

);create sequence seq_p_c_id

minvalue 1

maxvalue 9999999999

start with 1

increment by 1

nocache;

drop type t_child_lst_map;

drop type t_child_lst;

drop type t_parent_lst;

create or replace type t_parent as object (

name varchar2(100),

title varchar2(10));/

create or replace type t_child as object (

child_name varchar2(100),

child_title varchar2(10),

child_content varchar2(200));/

create or replace type t_parent_lst as table of t_parent;

/create or replace type t_child_lst as table of t_child;

/create or replace type t_child_lst_map as table of t_child_lst;

/create or replace procedure proc_ins_parent_child(

i_parent_lst in t_parent_lst,        --parent列表

i_child_map_lst in t_child_lst_map,  --child列表集合,乙個map元素對應乙個child_lst,其下標與 parent列表的下標相同。

o_ret out number

) as

var_parent t_parent;

var_child_lst t_child_lst;

var_child t_child;

var_parent_id number;

var_child_id number;

begin

for i in 1..i_parent_lst.count loop

--取得parent各列的值

var_parent := i_parent_lst(i);

--取得parent_id;

select seq_p_c_id.nextval into var_parent_id from dual;

--插入parent表

insert into parent(

id,name,

title

)values(

var_parent_id,

var_parent.name,

var_parent.title

);--取得該parent對應的child列表

var_child_lst := i_child_map_lst(i);

for j in 1..var_child_lst.count loop

var_child := var_child_lst(j);

--取得child_id;

select seq_p_c_id.nextval into var_child_id from dual;

--插入child表

insert into child(

id,parent_id,

child_name,

child_title,

child_content,

child_time

)values(

var_child_id,

var_parent_id,

var_child.child_name,

var_child.child_title,

var_child.child_content,

systimestamp

);end loop;

end loop;

o_ret := 0;

exception when others then

begin

o_ret := -1;

raise;

end;

end proc_ins_parent_child;

/

一維陣列及二維陣列

c語言一維陣列 float arr1 3 oc一維陣列 其實oc是沒有一維陣列二維陣列的概念的,但是可以實現一維陣列和二維陣列的功能 nsarray array1 nsarray arraywithobjects 2.5,3.6,4.7 nil c 語言二維陣列 float indexarray 2...

二維陣列及二維陣列的遍歷

一 如果陣列的元素是一維陣列 則該陣列是二維陣列 如果陣列的元素是二維陣列 則該陣列是三維陣列 注意 二維陣列的長度 是陣列內一維陣列的個數 獲取二維陣列內的元素 第一步獲取該元素在哪乙個一維陣列內 第二步獲取該元素在一維陣列的那個位置 false var arr 1,2,3 var arr1 你好...

二維陣列及陣列例題

1.定義 二維陣列本質上是以陣列作為陣列元素的陣列,即 陣列的陣列 型別說明符 陣列名 常量表示式 常量表示式 於數學中的 矩陣 類似。2.二維陣列的遍歷,拷貝方式及其他用法上可完全延用一維陣列的方法。1.鍵盤上獲取不超過10位數字的整數 1 求位數 2 分別輸出每一位的數字 3 將整數逆序 pub...