问题描述
嗨,
我有一张带分区的表。我正在尝试在同一查询中选择数据和分区名称。我已经创建了一个part_test表,并插入了数据。它在实时SQL链接上。
想查询这样的东西,
从part_test,all_tab_partitions中选择ld_dt,ld_src,<分区名称>,并使用all_tab_partitions加入part_test以获取数据和分区名称。
非常感谢您的帮助。
谢谢,
马尼
我有一张带分区的表。我正在尝试在同一查询中选择数据和分区名称。我已经创建了一个part_test表,并插入了数据。它在实时SQL链接上。
想查询这样的东西,
从part_test,all_tab_partitions中选择ld_dt,ld_src,<分区名称>,并使用all_tab_partitions加入part_test以获取数据和分区名称。
非常感谢您的帮助。
谢谢,
马尼
专家解答
这应该做到
我使用 “物化”,因为潜入数千次数据字典视图可能会很昂贵。
SQL> create table t 2 partition by list ( x ) 3 ( partition p0 values (0), 4 partition p1 values (1), 5 partition p2 values (2) 6 ) 7 as 8 select mod(rownum,3) x, rownum y 9 from dual 10 connect by level <= 20; Table created. SQL> SQL> with partitions as 2 ( select /*+ materialize */ data_object_id, subobject_name 3 from user_objects 4 where object_name = 'T' 5 and object_type = 'TABLE PARTITION' 6 ) 7 select t.*, p.subobject_name 8 from t, partitions p 9 where dbms_rowid.rowid_object(t.rowid) = p.data_object_id; X Y SUBOBJECT_NAME ---------- ---------- -------------------- 0 3 P0 0 6 P0 0 9 P0 0 12 P0 0 15 P0 0 18 P0 1 1 P1 1 4 P1 1 7 P1 1 10 P1 1 13 P1 1 16 P1 1 19 P1 2 2 P2 2 5 P2 2 8 P2 2 11 P2 2 14 P2 2 17 P2 2 20 P2 20 rows selected.
我使用 “物化”,因为潜入数千次数据字典视图可能会很昂贵。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。