在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;