忘了在哪儿找到的了,但是确实很好用,输入需要查询的值,查询出这个值出现在哪个表中。
红字的TEST0418为数据库用户,value处填写需要查询的值,也可用like查询。
--oracle无穷解查询数据库中的所有数据 DECLARE V_SQL VARCHAR2(2000); V_COUNT NUMBER; BEGIN FOR XX IN (SELECT TABLE_NAME,COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER='TEST0418' ) LOOP BEGIN V_SQL:= 'SELECT COUNT(1) FROM TEST0418.'||XX.TABLE_NAME ||' WHERE '||XX.COLUMN_NAME||' = ''value'' '; /*LIKE ''%123%'' ';*/ EXECUTE IMMEDIATE V_SQL INTO V_COUNT; IF(V_COUNT>=1) THEN DBMS_OUTPUT.PUT_LINE('SELECT TEST0418.'||XX.COLUMN_NAME ||' FROM '||XX.TABLE_NAME ||' WHERE '||XX.COLUMN_NAME||' = ''value'' '); /*LIKE ''%123%'' ');*/ END IF; EXCEPTION WHEN OTHERS THEN NULL; END; END LOOP; END;