• 如何将sql查询出的列名用注释代替?


    如何将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 || c_row.column_name||' "'||c_row.comments||'",';
          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) -->(需要查找的字段,在哪里查找,输出第几列,查找模式)

    需要查找的字段:R1
    在哪里查找:就在我复制下来的sheet4里面
    输出第几列:将第二列的数据引用过来 填写2
    查找模式:有true和false 。true是模糊,false是精确。
    这样下来,就可以直接替换了

  • 相关阅读:
    SpringMvc 框架
    面试:你最大的长处和弱点分别是什么?这些长处和弱点对你在企业的业绩会有什么样的影响?
    线程、并发、并行、进程是什么,以及如何开启新的线程?
    面向对象三大特性
    一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    JavaScript 引擎
    Spring Data JPA简介 Spring Data JPA特点
    博主博客
    微信相关
    关于正则表达式
  • 原文地址:https://www.cnblogs.com/jianshuai520/p/12009954.html
Copyright © 2020-2023  润新知