如何将sql查询出的列名⽤注释代替?(vlookup函数)
如何将sql查询出的列名⽤注释代替?
⼤家正常的⼯作的时候,会有这样的要求,客户想要看下原始数据,但是呢。前台导出⼜⿇烦,这时候只能从数据库拷贝出来⼀份。但是呢,数据库⾥⾯的字段客户⼜看不明⽩,只能⽤数据库⾥⾯的注释。但是这时候,如果要求很多张表,难道我们要⼀个个复制吗?这也太tm蠢了。
1 查看我们表
select * from user_col_comments where table_name='TNAME';
更新时间:2020/4/16
今天想弄下表信息,奈何⼀直显⽰不出来,后来发现,table_name的表名,必须要⼤写,必须要⼤写
2 写上函数
create or replace function f_colcom(tname in varchar2) return varchar2 is
Result  varchar2(400);
tsql varchar2(400);
begin
declare
cursor c_job is
select column_name, comments
from user_col_comments
where upper(table_name) = upper(tname);
c_row c_job%rowtype;
begin
for c_row in c_job loop
tsql := tsql || lumn_name||' "'||c_rowments||'",';
end loop;
tsql := substr(tsql,1,length(tsql)-1);
tsql := 'select '||tsql||'  from '||tname||';';
end;
result := tsql;
return(Result);
end f_colcom;
/*sql查询出的列名转换其注释  2019/12/09  by 迷途的⼩码农 */
3 查询表字段
emmm。出错了。报错:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太⼩
仔细看了下。函数中定义的变量值太⼩,加⼤它的范围即可。
咱也不知道需要多⼤,就直接给个最⼤的吧。4000
运⾏后可⽤:
将查询结果执⾏⼀遍。
查询之后就可以了,字段名称为注释
4 Excel函数VLOOKUP(函数)
函数的4个字段含义为:(需要查的字段,在哪⾥查,输出第⼏列,查模式)
我拷贝下来的sql数据为下:
如果这么给客户看的话,客户是看不懂字段的意思的,所以我们需要⽤函数,将注释填写上去。
我们查询出这张表的注释和字段,复制到Excel⾥⾯sheet4下,如下:
接着我们就需要⽤VLOOKUP 函数了。
我写的如下:
VLOOKUP(R1,Sheet4!1:1048576,2,FALSE) -->(需要查的字段,在哪⾥查,输出第⼏列,查模式)
需要查的字段:R1column函数和vlookup函数
在哪⾥查:就在我复制下来的sheet4⾥⾯
输出第⼏列:将第⼆列的数据引⽤过来填写2
查模式:有true和false 。true是模糊,false是精确。
这样下来,就可以直接替换了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。