Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle中的列名检索_Sql_Oracle_Search_Metadata - Fatal编程技术网

Sql Oracle中的列名检索

Sql Oracle中的列名检索,sql,oracle,search,metadata,Sql,Oracle,Search,Metadata,如何根据i wnat中给定的值检索列名以获取oracle中的列名 就像我不知道一个cloumn名称,但我知道列值一样 我试过这样做 select column_name from table_name where column_value=XXXXX; 试着这样做: SQL> select table_name, column_name, :search_string search_string, result from cols

如何根据i wnat中给定的值检索列名以获取oracle中的列名

就像我不知道一个cloumn名称,但我知道列值一样

我试过这样做

select column_name from table_name where column_value=XXXXX;   
试着这样做:

SQL> select table_name, 
       column_name, 
       :search_string search_string, 
       result
  from cols, 
       xmltable(('ora:view("'||table_name||'")/ROW/'||column_name||'[ora:contains(text(),"%'|| :search_string || '%") > 0]')
       columns result varchar2(10) path '.'
       )
where table_name in ('EMP', 'DEPT')

如果您想在普通的SQL中执行,那么您可以使用XML方法

例如,要在SCOTT模式中搜索值KING

SQL> variable val varchar2(10)
SQL> exec :val := 'KING'

PL/SQL procedure successfully completed.

SQL> SELECT DISTINCT SUBSTR (:val, 1, 11) "Searchword",
  2    SUBSTR (table_name, 1, 14) "Table",
  3    SUBSTR (column_name, 1, 14) "Column"
  4  FROM cols,
  5    TABLE (xmlsequence (dbms_xmlgen.getxmltype ('select '
  6    || column_name
  7    || ' from '
  8    || table_name
  9    || ' where upper('
 10    || column_name
 11    || ') like upper(''%'
 12    || :val
 13    || '%'')' ).extract ('ROWSET/ROW/*') ) ) t
 14  ORDER BY "Table"
 15  /

Searchword  Table          Column
----------- -------------- --------------
KING        EMP            ENAME

SQL>

阅读

这可能是重复的,看起来有点像黑客,这不是使用关系数据库的方式。。。您应该确定哪个列存储了要根据其筛选记录的属性。