ORACLE 查看表索引

== 查看索引列信息

SELECT INDEX_NAME,  
         MAX (DECODE (COLUMN_POSITION, 1, COLUMN_NAME || ' ' || DESCEND, NULL))  
            c1,  
         MAX (DECODE (COLUMN_POSITION, 2, COLUMN_NAME || ' ' || DESCEND, NULL))  
            c2,  
         MAX (DECODE (COLUMN_POSITION, 3, COLUMN_NAME || ' ' || DESCEND, NULL))  
            c3,  
         MAX (DECODE (COLUMN_POSITION, 4, COLUMN_NAME || ' ' || DESCEND, NULL))  
            c4,  
         MAX (DECODE (COLUMN_POSITION, 5, COLUMN_NAME || ' ' || DESCEND, NULL))  
            c5  
    FROM (  SELECT a.INDEX_NAME,  
                   REPLACE (  
                      DECODE (  
                         descend,  
                         'DESC', long_2_varchar (b.index_name,  
                                                 b.table_NAME,  
                                                 b.COLUMN_POSITION),  
                         a.column_name),  
                      '"',  
                      '')  
                      COLUMN_NAME,  
                   a.COLUMN_POSITION,  
                   DESCEND  
              FROM user_ind_columns a  
                   LEFT JOIN  
                   user_ind_expressions b  
                      ON     a.index_name = b.index_name  
                         AND a.table_name = b.table_name  
             WHERE a.table_name = 'CM_XX_T_ZC_APP_POS'  
          ORDER BY INDEX_NAME, column_position)  
GROUP BY INDEX_NAME;  

== 根据列位置查找列名

CREATE OR REPLACE FUNCTION long_2_varchar (  
   p_index_name        IN user_ind_expressions.index_name%TYPE,  
   p_table_name        IN user_ind_expressions.table_name%TYPE,  
   p_COLUMN_POSITION   IN user_ind_expressions.table_name%TYPE)  
   RETURN VARCHAR2  
AS  
   l_COLUMN_EXPRESSION   LONG;  
BEGIN  
   SELECT COLUMN_EXPRESSION  
     INTO l_COLUMN_EXPRESSION  
     FROM user_ind_expressions  
    WHERE     index_name = p_index_name  
          AND table_name = p_table_name  
          AND COLUMN_POSITION = p_COLUMN_POSITION;  
  
   RETURN SUBSTR (l_COLUMN_EXPRESSION, 1, 4000);  
END;  

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 索引是应用程序设计和开发的一个重要方面。 若索引太多, 应用程序的性能可能会受到影响。 而索引太少, 对查询性能又...
    好好学习Sun阅读 1,116评论 0 4
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,907评论 0 9
  • 索引的基本原理,以及数据是如何被访问的 (一)SQLS如何访问没有建立索引的数据表 Heap译成汉语叫做“堆”,其...
    安易学车阅读 3,627评论 0 8
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 10,100评论 0 44
  • 妈妈,小时候母亲总是常常说自己没出息,长大后就真的觉着没出息。 岁月跨越越长时间越久改变一个人的几率就越大,今天早...
    无痕_9527阅读 262评论 0 1

友情链接更多精彩内容