Oracle
有沒有辦法找到我的 ID 所屬的分區或子分區名稱
我知道是否需要從需要提供分區名稱的任何分區中進行選擇
SELECT * FROM TABLE PARTITION(P1);
如果我需要使用 sql 查詢知道特定值屬於哪個分區怎麼辦?
SELECT PARTITION_NAME FROM TABLE WHERE DOC_ID = 'S00102981655537O';
錯誤
ORA-00904: "PARTITION_NAME": invalid identifier 00904. 00000 - "%s: invalid identifier" *Cause: *Action: Error at Line: 25 Column: 8
甲骨文版本:11g
首先使用 . 獲取行的 rowid 和對象的對象 id
DBMS_ROWID
。SQL> insert into t3 values('S00102981655537O',sysdate,'IN-RJ'); 1 row created. SQL> select dbms_rowid.rowid_object(rowid) from t3 where doc_id='S00102981655537O'; DBMS_ROWID.ROWID_OBJECT(ROWID) ------------------------------ 93178 SQL> select subobject_name from user_objects where data_object_id=93178; SUBOBJECT_ ---------- SYS_SUBP81 SQL> select * from t3 subpartition(SYS_SUBP81); DOC_ID DOC_DATET STATE -------------------- --------- ---------- S00102981655537O 31-MAR-16 IN-RJ
我們可以看到該行屬於
SYS_SUBP81
子分區。