当前位置: 代码迷 >> Oracle管理 >> oracle 怎么从某种特定格式的数据找到这种数据存在哪个表中?
  详细解决方案

oracle 怎么从某种特定格式的数据找到这种数据存在哪个表中?

热度:11   发布时间:2016-04-24 05:06:51.0
oracle 如何从某种特定格式的数据找到这种数据存在哪个表中??
在oracle里面 一个库中有n多表  
现在我只知道在这些表中的某个字段存在这样的数据:0001.123456789(格式是固定的) 我怎么样才能匹配到这种数据存在哪个表中?

------解决方案--------------------
看看:

select * from user_objects;
------解决方案--------------------
select * from user_tab_columns

可以查出字段的信息
------解决方案--------------------
Oracle本身并没有提供这要的函数,但可以通过存储过程来实现。
请参考:
SQL code
CREATE OR REPLACE PROCEDURE FindTable ISDECLARE    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。
  相关解决方案