在存储过程里使用如SELECT * FROM TABLE(VIEW);怎么获得结果集所返回列的列名呢?
jdbc里面都有类似rs.getMetaData().getColumnName(1)和rs.getMetaData().getLabelName(1)之类的方法;
在PL/SQL Developer等工具里面使用SELECT * 也可以列出*所代表的列名。我感觉这些列名肯定是oracle有返回的,就是不知道怎么在存储过程中将其得到...

解决方案 »

  1.   

    列名是不知道的!因为使用的是SELECT * FROM TABLENAME(VIEWNAME);
    我就是想知道这里的星号(*)里面都包含了哪些列名?因为写的是通用的存储过程,不针对具体的某一个表或视图如上图所示,在PL/SQL Developer里使用SELECT *,但工具仍可以得到其所有的列名信息!
      

  2.   

    SELECT * FROM USER_TAB_COLUMN T WHERE T.TABLE_NAME = UPPER('表名');
      

  3.   

    如果查询的对象为TABLE可以这样,但是如果是VIEW呢?
      

  4.   

    一样。SELECT * FROM USER_TAB_COLUMN T WHERE T.TABLE_NAME = UPPER('视图名');