Sql 在Oracle表中查找子分区键列和列表值

Sql 在Oracle表中查找子分区键列和列表值,sql,oracle,database-partitioning,Sql,Oracle,Database Partitioning,我不是DBA,而是开发人员,我需要使用一个现有表,该表具有分区类型范围和子分区类型列表。我可以从ALL\u PART\u Key\u COLUMNS表中看到下面给出的分区键列 如何知道什么是子分区键列及其预定义列表?如果您碰巧知道这一点,请提供帮助。您可以加入用户前缀类型的三个字典视图,而不是所有,以便能够从普通用户(例如 SELECT s1.column_name AS "Key Column", s2.subpartition_name AS "Subpart

我不是DBA,而是开发人员,我需要使用一个现有表,该表具有
分区类型
范围和
子分区类型
列表。我可以从
ALL\u PART\u Key\u COLUMNS
表中看到下面给出的分区键列


如何知道什么是子分区键列及其预定义列表?如果您碰巧知道这一点,请提供帮助。

您可以加入
用户
前缀类型的三个字典视图,而不是
所有
,以便能够从普通用户(例如

SELECT s1.column_name AS "Key Column", s2.subpartition_name AS "Subpartition Names"
  FROM user_subpart_key_columns s1 
  JOIN user_part_key_columns p
    ON s1.name = p.name
  JOIN user_tab_subpartitions s2
    ON s2.table_name = p.name  
 WHERE s1.name = 'YOUR_TABLE'   
 ORDER BY s2.subpartition_position

谢谢,我正在使用RO用户阅读表格,而不是与用户谁是所有者,这可能是一个问题吗?嗨@DivyaMV。是的,这将是一个问题,除非从不同的用户处查询时,将这三个词典视图的
user\uuu
前缀替换为
all\uu
。再次感谢,这会有所帮助。我想进一步了解一下,当子分区是一个列表时,我们是否应该在定义子分区时在模板中提供允许值的静态列表?我在输出中看到了各种各样的子分区名称..我以为会有一个明确定义的值列表。。如果这是正确的,我在哪里可以找到子分区的确切模板?作为一名开发人员,我的问题是,我想我正在为SubPartionKey列插入一个不允许的值。我想找到问题的根源。不客气@DivyaMV。无论子数组的类型是LIST还是RANGE,您都可以通过向当前查询添加
s2.high_value
来显示定义的静态值。