请问在一张表的查询结果中 如何将该表字段名用该字段的注释代替(也就是用该字段的注释作为该字段的别名)?

解决方案 »

  1.   

    只能在select语句中指定别名
    select col as alias from t;
      

  2.   

    create or replace function col_to_comment(v_table_name varchar2)
    return varchar2
    is
      v_sql   varchar2(1000);
    begin
     execute immediate ' select listagg(COLUMN_NAME || '' AS '' || COMMENTS, '','') within group(order by rownum)
        from user_col_comments
       where TABLE_NAME = :1' into v_sql using upper(v_table_name);
      if v_sql is null 
        then return null;
        else 
      v_sql := 'select ' || v_sql || ' from '|| v_table_name;
      end if;
      return v_sql;
    end;
    /
    select col_to_comment('EMP') from dual ;
    /
    查询视图,然后生成一条sql