只知道查列名的方法
select TABLE_NAME from USER_TAB_COLUMNS where COLUMN_NAME='USERID'再加上指定值,如:USERID=123 怎么写?谢谢!

解决方案 »

  1.   

    oracle不提供直接的方法,自己写个过程去做吧。
      

  2.   

    这个要求有点高啊,呵呵。
    可以自己写一个存储过程来实现。具体代码参考如下:CREATE OR REPLACE PROCEDURE FindTable IS
    DECLARE
        CURSOR curTableName IS 
        SELECT TABLE_NAME FROM USER_TAB_COLUMNS WHERE COLUMN_NAME='USERID';
        sqlStr VARCHAR2(200);
        res     NUMBER(20);
    BEGIN
        FOR r IN curTableName
        LOOP
            -- 动态SQL语句
            sqlStr := 'SELECT COUNT(1) INTO res FROM r.TABLE_NAME WHERE USERID =' || '123';
            EXECUTE IMMEDIATE sqlStr;
            IF res >0 THEN
                DBMS_OUTPUT.PUT_LINE(r.TABLE_NAME);
            END IF;
        END LOOP;
    END FindTable;仅供参考,代码没有编译执行。