パーティション名を指定する必要があるパーティションから選択する必要があるかどうかがわかります
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
Oracleバージョン:11g
まず、DBMS_ROWID
を使用して、行の行IDとオブジェクトのオブジェクトIDを取得します。
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
サブパーティションに属しています。