我现在用一个指针循环获取记录
现在想通过获取到的一条记录的一个数据来查询得到这个数据所对应的列名是什么,不知道可否实现

解决方案 »

  1.   


    --本来就是这样的呀 下面是在SQL*PLUS下执行的
    SQL> select * from dept;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON
      

  2.   

    因为我这边现在是用sql*puls提取数据,然后用C调用,sql*plus向C传的时候是用一个map传过去的,map中的每个元素都是一行数据记录,格式是“列名1:数据1,列名2:数据2……”字段名是生成好的,要将查询出来的数据记录一个一个对应的添加进去,现在就是不知道如何获得数据和列名的对应。还望各位大大指教
      

  3.   

    哦……你是使用C来调用啊
    以前用过C++指针读取表中记录 直接是数据 没有那一行列名的不过既然你通过MAP读取过来的格式是"列名1:数据1,列名2:数据2……”
    那么应该可以通过一些方法操作字符串截取出列名的吧
      

  4.   

    回12楼,刚说错了,是游标,但是都一样是获取不了列名的。现在C那边调用是没有任何问题,问题是sql端组装出这样一个字符串,虽然每一个查询都是写死的,如果要手动的为每个查询都进行人工匹配也行(虽然说是也行。。但是近千张表,每张表几十个字段,有点扛不大住),但是现在想用sql*plus写一个查询无关的数据组装工具,之前说的格式我已经生成好了,现在就是在想办法把查询出来的数据匹配进去。还望各位指教
      

  5.   

    一列一列的对应下面的数据,这个数据排在哪个列下的数据如果也不知道的话就没办法了。要不用笨方法先desc tableName; 再查看这个数据的类型,比方说number型,获取所有类型为number的列名,比方说现有获取列名:id  phone QQ  再去看这个表里有哪些列是number型,
    再去做一个 select * from tableName where id = 这个数据;|phone=这个数据|QQ = 这个数据
    再做一些排查估计结果就出来了,我也没做过这个,楼主你试试看吧。
      

  6.   

    用了一个折中的办法解决了,在查询数据的时候就用||将结果集组装好了,但是碰到的新问题是Oracle中的char类型保存不了那么大的字符串结果集。此贴就先结了