如何解决OB-Oracle某些索引无法查询的问题?

Viewed 17

在OB-Oracle数据库中,有时候索引查询的出来的数量与Oracle不一致,可通过修改查询模板的方式来处理:

image.png

修改为:

SELECT i.owner AS schema_name,
       i.table_name AS TBL_DEF_KEY,
       ic.column_name AS COL_DEF_KEY,
       co.data_default AS VIRTUAL_COL_DEF_KEY,
       i.index_name AS DEF_KEY,
       CASE
           WHEN i.uniqueness = 'UNIQUE' THEN 'UNIQUE'
           ELSE 'NORMAL'
       END AS TYPE,
       CASE
           WHEN ic.descend = 'DESC' THEN 'DESC'
           ELSE 'ASC'
       END AS SORT_TYPE,
       ic.column_position AS ORDER_VALUE,
       NULL AS INTRO
FROM all_indexes i
LEFT JOIN all_ind_columns ic 
       ON i.owner = ic.index_owner 
      AND i.index_name = ic.index_name 
      AND i.table_name = ic.table_name
LEFT JOIN all_tab_cols co 
       ON co.owner = i.owner 
      AND co.table_name = i.table_name 
      AND co.column_name = ic.column_name
LEFT JOIN all_constraints pk 
       ON pk.owner = i.owner 
      AND pk.table_name = i.table_name 
      AND pk.index_name = i.index_name 
      AND pk.constraint_type = 'P'
WHERE i.owner IN (:schemaName)
  AND CONCAT(CONCAT(i.owner, '.'), i.table_name) IN (:sysTableNames)
  AND pk.constraint_name IS NULL
ORDER BY i.owner, i.table_name, i.index_name, ic.column_position;
0 Answers