我發現了很多例子,展示瞭如何使用嵌套表格列創建表格以及如何在步驟1-5中詳細「手動」更新它們。如何從嵌套表格列的不同表格更新多個行(批量)?
我想要做什麼: 更新(在例子中的「cust_info」)嵌套表列直接/自動從其他數據庫中的表(NEW_TBL-具有相同的結構),並陸續不需要進入一個值手動。
(1)創建對象:
CREATE TYPE TEST_OBJECT_T AS OBJECT
(
x NUMBER,
y NUMBER
);
(2)創建集合:
CREATE TYPE TEST_OBJ_TBL IS TABLE OF TEST_OBJECT_T;
(3)用巢式表列
create table aaaTable
(
CUSTID number,
cust_info TEST_OBJ_TBL
)
NESTED TABLE cust_info STORE AS xx_tbl
;
創建表
(4) - -insert數據
insert into AAATABLE
VALUES (1,TEST_OBJ_TBL(
TEST_OBJECT_T(33,77),
TEST_OBJECT_T(66,67),
TEST_OBJECT_T(320,999)
)
);
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++
insert into AAATABLE
VALUES (2,TEST_OBJ_TBL(
TEST_OBJECT_T(444,555),
TEST_OBJECT_T(333,67),
TEST_OBJECT_T(111,978)
)
);
(5)的查詢2看到的結果
select T1.custid ,T2.*
from AAATABLE T1 , table(T1. CUST_INFO) T2;
results :
CUSTID X Y
---------- ---------- ----------
1 33 77
1 66 67
1 320 999
2 444 555
2 333 67
2 111 978
(6)創建新的表,這將是數據源,用於更新嵌套表列)
create table new_tbl
(
X1 NUMBER,
Y1 NUMBER
);
(7)將數據插入新表
再次insert into NEW_TBL values (222,444);
insert into NEW_TBL values (345,777);
insert into NEW_TBL values (867,222);
+++++++++++++++++++++++++++++++++
select * from NEW_TBL
X 1 Y1
---------- ----------
222 444
345 777
867 222
的問題:能我在批量插入「new_tbl」數據轉換成嵌套表列(「cust_info「)(意味着 - 在階段替換數據4 TEST_OBJECT_T(33,77), TEST_OBJECT_T(66,67), TEST_OBJECT_T(320999) ) 我試圖使用批量收集,但沒有成功。
感謝 可人
多10倍。我嘗試了更復雜的東西.. – keren