在oracle中如何把查询结果的列标题换为列注释

由于最近有这个需要,我查看了相关文档后,写了一个存储过程,指定用户名,表明后,过程返回查询该表的sql语句,同时把列标题替换为注释了。

ps:由于小弟能力有限,程序中有点小瑕疵,就是在注释中出现特殊字符,比如||,'等字符时,返回的sql语句会报错,提示找不到from关键字,有没有解决办法呢,正在思索中,如有知道者与小弟联系,万分感谢。

 

 1 create or replace procedure get_result_by_col_comments(tableowner varchar2,tablename varchar2,out_sql out varchar2) is
 2 --申明变量
 3 v_sql varchar2(2000);
 4 type c is ref cursor;
 5 cur c;
 6 v_col_name varchar2(255);
 7 v_col_comment varchar2(255);
 8 --开始处理
 9 begin
10 out_sql:='select ';
11 v_sql:='select column_name,comments from all_col_comments s where s.table_name='''||
12 trim(tablename)||''' and s.owner='''||trim(upper(tableowner))||'''';
13 dbms_output.put_line(v_sql);
14 open cur for v_sql;
15 loop
16 fetch cur into v_col_name,v_col_comment; 
17 exit when cur%notfound;
18 out_sql:=out_sql||v_col_name ||' '||v_col_comment||',';
19 end loop;
20 close cur;
21 out_sql:=out_sql||' rownum from '||tableowner||'.'||tablename;
22 dbms_output.put_line('查询语句为:'||out_sql);
23 end get_result_by_col_comments;

 

posted @ 2015-05-16 22:31  guohai_123  阅读(921)  评论(0编辑  收藏  举报