如何在oracle中执行块?

时间:2015-08-11 02:10:16

标签: oracle

我正在寻找在oracle所有表和列中搜索字符串/数字的解决方案。

我在网上查了一下,可以找到很多解决方案。

但是当我在SQL Oracle开发人员中执行下面的解决方案时,它会创建一个匿名阻止。

任何人都可以帮助我如何在Oracle中使用以下解决方案来获得结果。

DECLARE
  match_count integer;
  v_search_string varchar2(4000) := <<string you want to search for>>;
BEGIN  
  FOR t IN (SELECT owner, table_name, column_name FROM all_tab_columns) LOOP   
    EXECUTE IMMEDIATE    
      'SELECT COUNT(*) FROM '||t.owner || '.' || t.table_name||
      ' WHERE '||t.column_name||' = :1'   
       INTO match_count  
      USING v_search_string; 
    IF match_count > 0 THEN 
      dbms_output.put_line( t.owner || '.' || t.table_name ||' '||t.column_name||' '||match_count );
    END IF; 
  END LOOP;
END;
/

请帮助我,因为我是Oracle新手。

先谢谢

2 个答案:

答案 0 :(得分:0)

首先执行

Set serveroutput on;

然后执行你的匿名阻止。

答案 1 :(得分:0)

单击SQL Developer中的视图和DBMS输出。 在这一刻,您可以看到结果PL / SQL块。