a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

Oracle中實(shí)現(xiàn)MySQL show index from table命令SQL腳本分享

2024-08-29 13:58:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了Oracle中實(shí)現(xiàn)MySQL show index from table命令SQL腳本分享,本文只是模擬了Mysql中的show index from table命令,需要的朋友可以參考下
 
 

實(shí)驗(yàn)數(shù)據(jù)初始化:

 

復(fù)制代碼代碼如下:

create table t as select * from hr.employees;
create index inx_t1 on t(employee_id,first_name desc,last_name);
create index inx_t2 on t(job_id,hire_date);

 

顯示該表所有索引的信息。

以dba登錄

 

復(fù)制代碼代碼如下:

set linesize 300;
set pagesize 100;
col c1 format a20;
col c2 format a20;
col c3 format a20;
col c4 format a20;
col c5 format a20;
col INDEX_NAME format a20;
select INDEX_NAME,
max(decode(COLUMN_POSITION,1,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c1,
max(decode(COLUMN_POSITION,2,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c2,
max(decode(COLUMN_POSITION,3,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c3,
max(decode(COLUMN_POSITION,4,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c4,
max(decode(COLUMN_POSITION,5,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c5
from (
select INDEX_NAME,COLUMN_NAME,COLUMN_LENGTH,COLUMN_POSITION,DESCEND
from dba_ind_columns 
where table_owner='LIHUILIN' 
AND table_name='T' 
order by INDEX_NAME,column_position
) group by INDEX_NAME;

 

以普通用戶(hù)登錄

 

復(fù)制代碼代碼如下:

set linesize 300;
set pagesize 100;
col c1 format a20;
col c2 format a20;
col c3 format a20;
col c4 format a20;
col c5 format a20;
col INDEX_NAME format a20;
select INDEX_NAME,
max(decode(COLUMN_POSITION,1,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c1,
max(decode(COLUMN_POSITION,2,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c2,
max(decode(COLUMN_POSITION,3,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c3,
max(decode(COLUMN_POSITION,4,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c4,
max(decode(COLUMN_POSITION,5,COLUMN_NAME||','||COLUMN_LENGTH||','||DESCEND,null)) c5
from (
select INDEX_NAME,COLUMN_NAME,COLUMN_LENGTH,COLUMN_POSITION,DESCEND
from user_ind_columns 
where table_name='T' 
order by INDEX_NAME,column_position
) group by INDEX_NAME;

 

Oracle中實(shí)現(xiàn)MySQL show index from table命令SQL腳本分享

但是可以看到,以倒序創(chuàng)建的索引字段,都是以SYS等命名。

Oracle把這種倒序創(chuàng)建的索引字段看成函數(shù)索引。

它的信息保存在user_ind_expressions視圖。

Oracle中實(shí)現(xiàn)MySQL show index from table命令SQL腳本分享

user_ind_expressions視圖的COLUMN_EXPRESSION字段類(lèi)型是long型。

王工的版本可以解決這個(gè)問(wèn)題

 

復(fù)制代碼代碼如下:

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;
/


復(fù)制代碼代碼如下:

set linesize 300;
set pagesize 100;
col c1 format a20;
col c2 format a20;
col c3 format a20;
col c4 format a20;
col c5 format a20;
col INDEX_NAME format a20;
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_LENGTH,
                   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 = 'T'
          ORDER BY INDEX_NAME, column_position)
GROUP BY INDEX_NAME;

 


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品资源在线 | 国产精品亚洲综合 | 黄频免费在线观看 | 美女黄色毛片视频 | 黄页网站免费在线观看 | 伊人99 | 国产精品欧美一区二区 | 青青草国产成人av片免费 | 国产一级在线观看 | 在线a视频网站 | 国产精品国产三级国产有无不卡 | 久久亚洲春色中文字幕久久久 | 久久97精品 | 亚洲精品一区二区网址 | 成人在线观看免费爱爱 | 欧美最猛性xxxxx亚洲精品 | 免费观看一级特黄欧美大片 | 国产免费一区二区三区 | 久久精品91 | 大片黄网站 | 国产成人午夜精品5599 | 九色 在线 | 国产精品一区二区麻豆 | 一区二区视频在线 | 国产美女久久久 | 亚洲第一区国产精品 | 国产小视频免费在线观看 | av一区二区三区 | 伊人影院在线观看 | 九色社区| 激情五月婷婷综合 | 日日摸夜夜添夜夜添特色大片 | 色综合五月婷婷 | 国产一区二区三区久久久 | 国产一区亚洲 | 亚洲一区精品在线 | 国产乱码精品一区二区三区爽爽爽 | 我爱操| 视频久久精品 | 伊人春色网 | 四虎8848精品成人免费网站 |