在看11G联机文档的PARTITION EXTENDED NAME限制的时候,测试发现与书上描述不符。
Restrictions on Extended Names Currently, the use of partition-extended and subpartition-extended table names has the following restrictions:
No remote tables: A partition-extended or subpartition-extended table name cannot contain a database link (dblink) or a synonym that translates to a table with a dblink. To use remote partitions and subpartitions, create a view at the remote site that uses the extended table name syntax and then refer to the remote view.
No synonyms: A partition or subpartition extension must be specified with a base table. You cannot use synonyms, views, or any other objects.
The PARTITION FOR and SUBPARTITION FOR clauses are not valid for DDL operations on views.
In the PARTITION FOR and SUBPARTITION FOR clauses, you cannot specify the keywords DEFAULT or MAXVALUE or a bind variable for the partition_key_value or subpartition_key_value.
第二句话说 分区或者子分区的扩展语句必须指定在基表上,而不能指定在同义词或者视图及其他对象。
测试的时候却发现不是这样的:
SQL> create table test partition by range(object_id)
2 (
3 partition p1 values less than(10000),
4 partition p2 values less than(20000),
5 partition p3 values less than(30000),
6 partition p4 values less than(maxvalue)
7 )
8 as
9 select * from all_objects;
Table created.
SQL> select count(1) from test partition (p1);
COUNT(1)
----------
4224
SQL> create synonym s_test for test;
Synonym created.
SQL> select count(1) from s_test partition (p1);
COUNT(1)
----------
4224
可以看到在同义词上指定的PARTITION EXTENSION也是可以的。
SQL> create view v_test as select * from test ;
View created.
SQL> select count(1) from v_test partition (p1);
select count(1) from v_test partition (p1)
*
ERROR at line 1:
ORA-14109: partition-extended object names may only be used with tables
在视图上指定是不可以的。
虽然我的测试环境是10.2.0.4,而文档时11G的,但是不太可能10G都支持的功能,11G取消了吧
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
NLSRTL Version 10.2.0.4.0 - Production