日期:2014-05-17 浏览次数:21205 次
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;
------解决方案--------------------
这个是查询哪个表中存在'USERID'这个列,并且该列中有值123。