提供的代碼僅供測(cè)試,實(shí)際應(yīng)用需要作少量修改
示例如下:
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('表名,列名,結(jié)果');
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下測(cè)試通過(guò).
使用方法:
begin search('...','...'); end;
/
第一個(gè)參數(shù)是知道的列名,第二個(gè)參數(shù)是需要查找的數(shù)據(jù)
下面是執(zhí)行效果:
1 SQL> begin search('答案','試題規(guī)范'); end;
2 2 /
3
4 表名,列名,結(jié)果
5 數(shù)據(jù)值答案表,答案,面試試題規(guī)范。
6 數(shù)據(jù)值答案表,答案,進(jìn)一步完善面試試題規(guī)范。
7 數(shù)據(jù)值答案表,答案,修改考核試題規(guī)范。
8 數(shù)據(jù)值答案表,答案,進(jìn)一步完善考核試題規(guī)范。
9 數(shù)據(jù)值答案表,答案,考核試題規(guī)范有誤。
10 數(shù)據(jù)值答案表,答案,修改考核高級(jí)試題規(guī)范。
11 數(shù)據(jù)值答案表,答案,考核高級(jí)試題規(guī)范快速分頁(yè)規(guī)范,修改錯(cuò)誤頁(yè)面。
posted on 2009-04-02 12:58
宋振華 閱讀(1325)
評(píng)論(0) 編輯 收藏 引用