提供的代碼僅供測試,實際應用需要作少量修改
示例如下:
1 create or replace procedure search(v_colname in varchar2, v_find in varchar2) as
2 v_sql varchar2(2000);
3 v_result varchar2(1000);
4 v_cursor number;
5 v_stat number;
6 begin
7 dbms_output.put_line('表名,列名,結果');
8 for a in (select table_name,column_name from user_tab_columns where column_name = v_colname) loop
9 v_cursor := dbms_sql.open_cursor;
10 v_sql := 'select ' || v_colname || ' from ' || a.table_name || ' where ' || v_colname || ' like ''%' || v_find || '%''';
11 dbms_sql.parse(v_cursor,v_sql,dbms_sql.native);
12 dbms_sql.define_column(v_cursor,1,v_result,1000);
13 v_stat := dbms_sql.execute(v_cursor);
14 loop exit when dbms_sql.fetch_rows(v_cursor)<=0;
15 dbms_sql.column_value(v_cursor,1,v_result);
16 dbms_output.put_line(a.table_name||','||a.column_name||','||v_result);
17 end loop;
18 dbms_sql.close_cursor(v_cursor);
19 end loop;
20 end search;
21
在oracle 10g下測試通過.
使用方法:
begin search('...','...'); end;
/
第一個參數是知道的列名,第二個參數是需要查找的數據
下面是執行效果:
1 SQL> begin search('答案','試題規范'); end;
2 2 /
3
4 表名,列名,結果
5 數據值答案表,答案,面試試題規范。
6 數據值答案表,答案,進一步完善面試試題規范。
7 數據值答案表,答案,修改考核試題規范。
8 數據值答案表,答案,進一步完善考核試題規范。
9 數據值答案表,答案,考核試題規范有誤。
10 數據值答案表,答案,修改考核高級試題規范。
11 數據值答案表,答案,考核高級試題規范快速分頁規范,修改錯誤頁面。
posted on 2009-04-02 12:58
宋振華 閱讀(1326)
評論(0) 編輯 收藏 引用