Oracle PL/SQL之嵌套表(Nested Table)

本文介绍如何在Oracle数据库中使用PL/SQL创建嵌套表,并演示了创建嵌套表类型、表结构及插入数据的过程。此外,还展示了如何通过特定语法查询嵌套表中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Test Code:

Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 Connected as xxpo SQL> CREATE OR REPLACE TYPE color_tab_t AS TABLE OF VARCHAR2(30); 2 / Type created SQL> SQL> CREATE TABLE color_models ( 2 model_type VARCHAR2(12) 3 , colors color_tab_t 4 ) 5 NESTED TABLE colors STORE AS color_model_colors_tab 6 / Table created SQL> SQL> BEGIN 2 INSERT INTO color_models 3 VALUES ('RGB', color_tab_t ('RED','GREEN','BLUE')); 4 END; 5 / PL/SQL procedure successfully completed SQL> select * from color_models; MODEL_TYPE COLORS ------------ ------ RGB <Objec SQL> select * from color_model_colors_tab; select * from color_model_colors_tab ORA-22812: cannot reference nested table column's storage table SQL> SQL> SELECT object_name 2 ,object_type 3 ,status 4 FROM dba_objects 5 WHERE object_name = upper('COLOR_MODEL_COLORS_TAB'); OBJECT_NAME OBJECT_TYPE STATUS -------------------------------------------------------------------------------- ------------------- ------- COLOR_MODEL_COLORS_TAB TABLE VALID SQL> SELECT /*+NESTED_TABLE_GET_REFS+*/ * FROM COLOR_MODEL_COLORS_TAB; COLUMN_VALUE ------------------------------ RED GREEN BLUE SQL>

Ref:

1. Page 357, Oracle PL/SQL Programming FIFTH EDITION, Steven Feuerstein with Bill Pribyl, O'REILLY

2. http://www.itpub.net/viewthread.php?tid=640129

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值