oracle中,怎样根据随便一个sql查询语句获得该语句查询到的字段名字和字段类型?
本人就1分了。请大家帮帮忙 多谢了 

解决方案 »

  1.   

    你可以顶下原帖,不必重发帖问的
    表的话比较好办,视图的话,好像没有返回字段类型的函数,和相关user表
    其实,比如有个语句
    select a from tt
    你可以获取表名tt和字段名a,然后select datatype from user_tables....
    那么select e from (select a e from tt)
    一样可以追踪获取原始的表名和字段名,就是麻烦点
    如果没有对字段进行类型转换,还是比较准确的这不是你理想的答案,就当是顶帖了
      

  2.   

    不太一样! 因为你说的那种 是要知道表明和字段名的  但我想问的是  这些都是不知道的  
    知道的只是个sql的查询语句 这个语句可能很复杂  我还需要再写个解析程序,去解析sql ?不太可能吧 
    就是想通过查询sql的结果集,获得所有查询到的字段和类型  
      

  3.   

    刚那边有人不是给了你一个建议吗declare
        v_sqlquery        varchar2(1024); --查询语句
         v_sqlstring       varchar2(1024); --动态SQL
    begin
        v_sqlquery := 'select * from dual';
        v_sqlstring := 'create table test as ' || v_sqlquery;
        execute immediate v_sqlstring;    declare
            cursor cur_tabcol is
                select column_name, data_type from user_tab_columns where table_name = 'TEST';
        begin
            v_sqlstring := '';
            for c_tab in cur_tabcol
            loop
                v_sqlstring := v_sqlstring || c_tab.column_name || ' ' || c_tab.data_type || ',';
            end loop;
        end;
        dbms_output.put_line(v_sqlstring);
    end;