我想使用Oracle Data Dictionary Views在 oracle 数据库中查找计算列列表。
我想添加更多信息。假设我在数据库中有以下计算/计算列。
ALTER TABLE HR.EMPLOYEES
ADD FULL_NAME AS ( FIRST_NAME || ' ' || LAST_NAME);
我可以在 Select Statements 中选择此列值。
SELECT EMPLOYEE_ID,FULL_NAME FROM HR.EMPLOYEES;
结果
... 174 艾伦·亚伯 ...
我可以在 TAB_COLUMNS 视图中看到此列。
select * from all_tab_columns C
WHERE
1 = 1
AND C.table_name = 'EMPLOYEES'
AND C.OWNER = 'HR'
AND COLUMN_NAME = 'FULL_NAME'
;
我想找到给定的架构、表和列,如果该列是计算/计算的?
我错误地认为INDEXES视图给了我这个信息。但以下选择不返回任何行。这仅给出功能索引。
SELECT index_name,index_Type,I.*
FROM ALL_indexes I
WHERE
1 = 1
AND INDEX_TYPE LIKE 'FUNCTION-BASED%'
AND I.OWNER = 'HR'
该列
USER_TAB_COLS.virtual_column = 'YES'
指示它是否是虚拟列。您可以通过以下方式获取每列的表达式: