【问题标题】:How to dispaly name of table from a database when match criteria匹配条件时如何显示数据库中的表名
【发布时间】:2013-05-19 15:32:09
【问题描述】:

我的表结构为:

 tabble_name_temp1


    col_up      col_down

    akash      kavita 

    kavita     aruhi

    aruhi      Akash



 tabble_name_temp2


    col_up      col_down

    akash      kavita 

    kavita     simran

    jyoti     Akash


   tabble_name_temp3


    col_up      col_down

    akash      kavita 

    kavita     simran

    jyoti     Akash

我想选择具有

的表的名称

值,例如:如果我输入

        akash and simran

那么这应该像

       tabble_name_temp2

       tabble_name_temp3

提前致谢!

【问题讨论】:

    标签: php mysql database oracle11g


    【解决方案1】:

    Oracle 有all_objectsall_tab_columns 表,用于存储表/列相关数据。 您可以从这些表中进行选择,然后形成动态查询来检查这些表中是否存在给定的数据。这是单个输入的示例代码。如果有多个输入,您将不得不重复多次。

    DECLARE
       l_chr_query   VARCHAR2 (2000);
       l_num_count   NUMBER (1);
    BEGIN
       FOR i IN (SELECT table_name, column_name
                   FROM all_tab_columns
                  WHERE table_name IN (
                           SELECT object_name
                             FROM all_objects
                            WHERE object_name LIKE 'SA_%' AND object_type = 'TABLE')
                    AND data_type = 'VARCHAR2') --modify the where clause as per your needs
        LOOP
          l_num_count := 0;
          l_chr_query :=
                'select count(1) from ' || i.table_name || ' where ' || i.column_name
             || ' = ''akash'' and rownum = 1';
    
          --execute the query
          EXECUTE IMMEDIATE l_chr_query INTO l_num_count;
    
          IF l_num_count > 0
          THEN
             DBMS_OUTPUT.put_line (i.table_name);
          END IF;
       END LOOP;
    EXCEPTION
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line (SQLERRM);
    END;
    

    一旦找到一个表,您可以将它保存在一个数组中,并在同一个表但不同列的下一次迭代中跳过检查同一个表。

    【讨论】:

    • Mysql 呢?我的意思是在mysql中是否可能?
    • 不知道 mySQL。但我认为 mySQL 中也一定有类似的东西。
    猜你喜欢
    • 2020-12-31
    • 1970-01-01
    • 2018-08-19
    • 2013-04-19
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多