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