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

 

转载于:https://www.cnblogs.com/guohai/articles/4508827.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值