Posted on 2009-04-02 23:03
S.l.e!ep.¢% 阅读(230)
评论(0) 编辑 收藏 引用 所属分类:
Oracle
提供的代码仅供测试,实际应用需要作少量修改
示例如下:
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 数据值答案表,答案,考核高级试题规范快速分页规范,修改错误页面。