简体   繁体   English

如何从所有表中选择列的所有可能值?

[英]How to select all possible values of columns from all tables?

SELECT POM.TABLE_NAME, POM.COLUMN_NAME
FROM ALL_TAB_COLUMNS POM
WHERE  POM.COLUMN_NAME LIKE'%STATUS%'

I want to see all possible values in columns on the list(in one row if possible). 我想查看列表中各列中的所有可能值(如果可能,请一行显示)。 How can i modify this select to do it? 我该如何修改此选择呢?

i want soemthing like this 我想要这样的东西

 TABLE_NAME | COLUMN_NAME |VALUES
 -----------| ----------- | -------
 CAR        | COLOR       | RED,GREEN 

You can use the below query for your requirement. 您可以根据需要使用以下查询。 It fetched distinct column values for a table. 它为表获取了不同的列值。 It can be used only for the table having limited number of distinct values as I have used LISTAGG function. 正如我使用LISTAGG函数一样,它只能用于具有有限数量的不同值的表。

SELECT POM.TABLE_NAME, POM.COLUMN_NAME,
       XMLTYPE(DBMS_XMLGEN.GETXML('SELECT LISTAGG(COLUMN_NAME,'','') WITHIN GROUP (ORDER BY COLUMN_NAME) VAL 
                                   FROM (SELECT DISTINCT '|| POM.COLUMN_NAME ||' COLUMN_NAME
                                         FROM '||POM.OWNER||'.'||POM.TABLE_NAME||')')
              ).EXTRACT('/ROWSET/ROW/VAL/text()').GETSTRINGVAL() VAL
FROM   ALL_TAB_COLUMNS POM
WHERE  POM.COLUMN_NAME LIKE'%STATUS%';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM