2015-11-30 101 views
-2

我一直在处理一个元表,它是3个表的集成(具有相同的数据库结构,但列名可能不同),我必须编写一个函数来检查列有一个函数(to_Char())在它们上面。还有很多列。因此,必须将语法推广到搜索所有具有to_char函数写入或不写入的列。检查列是否存在函数

例子:

CONONICAL   DB1   DataType DB1 Function DB1  DB2 
CUSTOMER_TABLE customer_tb Table   CUSTOMERS   Table 
CUSTOMER_ID  Cust_id  number  to_char(cust_id) cust_id number 
CUSTOMER_NAME  Cust_name  varchar2(20) cust_name   varchar2(20) 
CUSTOMER_ADDRESS Cust_address varchar2(20) cust_add   varchar2(20) 
+0

没有人可以在这里解决你的任务。请更具体一些,告诉我们你到底做了什么,以及你面临的具体问题 – Ghayel

+2

“*如果该列有一个功能*”对我没有任何意义。除非您正在讨论计算列,否则列不会“有”功能。 –

+0

您是否在讨论基于函数的INDEXES列?如果你想要qucik和质量响应请详细说明 –

回答

0

如果我没看错你所要求的与他们的DDL所有基于功能指标,这样就可以找出什么类型的索引上望柱采用下面的代码帮助。

SELECT IDX.TABLE_OWNER, 
    IDX.INDEX_NAME, 
    IDX.INDEX_TYPE, 
    IDX.TABLE_NAME, 
    IND.COLUMN_NAME, 
    dbms_metadata.get_ddl('INDEX',IDX.INDEX_NAME,IDX.TABLE_OWNER) ddl_script 
FROM all_indexes IDX, 
    ALL_IND_COLUMNS IND 
WHERE OWNER   = <OWNER_NAME> 
AND IND.INDEX_NAME = IDX.INDEX_NAME 
AND IND.TABLE_OWNER = IDX.TABLE_OWNER 
AND IDX.INDEX_TYPE = 'FUNCTION-BASED NORMAL'; 
+0

如果这解决了您的问题,请接受答案,否则让我们知道确切的需求。 –