日期:2014-05-17 浏览次数:21058 次
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。