如何获得存储过程的列头


这是一个存储过程 得到的 现在要像获得他的列头 怎么做?
如果是 tabel 的话是
SELECT COLUMN_NAME
  FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = '表名' 是这样的

但是 如果是 存储过程呢?
FineReport123456 发布于 2012-3-22 11:19
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共14回答
最佳回答
0
ghz发布于2012-3-22 11:26(编辑于 2023-9-6 09:34)
555
最佳回答
0
ghz发布于2012-3-22 11:27(编辑于 2023-9-6 09:34)
555
  • 123456 123456(提问者)

    CREATE OR REPLACE PROCEDURE LIHE.sp_D_Management_Cost_Pivot(DEPARTMENT_BUDGET_ID_Param in D_BUDGET_LIST.DEPARTMENT_BUDGET_ID%TYPE,
                                                           out_cur                    out out_param.out_cur) IS
      CURSOR LIST_NAME IS
        SELECT L.D_BUDGET_LIST_ID, L.LIST_NAME
          FROM D_BUDGET_LIST L
         WHERE L.DEPARTMENT_BUDGET_ID = DEPARTMENT_BUDGET_ID_Param
           and L.Deleted = 0;
      SQLSTR  VARCHAR2(8000) := \'select D.PRODUCT_ID ,P.PRODUCT_NAME\';
      SQLSTR2 VARCHAR2(8000) := \'\';
      --  SQLSTRTotal VARCHAR2(8000) := \'select 99999999 as PRODUCT_ID ,to_char(\' ||
      --                                \'\'\'合计\'\'\' || \') as PRODUCT_NAME\';
    BEGIN
      FOR ITEM IN LIST_NAME LOOP
        SQLSTR := SQLSTR || \', sum(case D.D_BUDGET_LIST_ID when \' ||
                  ITEM.D_BUDGET_LIST_ID || \' then D.Total end ) as \" \' ||
                  ITEM.LIST_NAME || \' \"\';
        --    SQLSTRTotal := SQLSTRTotal || \', sum(case D.D_BUDGET_LIST_ID when \' ||
      --                   ITEM.D_BUDGET_LIST_ID || \' then D.Total end ) as \"\' ||
      --                   ITEM.LIST_NAME || \'\"\';
      END LOOP;
      SQLSTR2 := \',sum(D.Total) as \"合计\" from D_BUDGET_LIST_DETAIL D
         inner join D_BUDGET_LIST L on D.D_BUDGET_LIST_ID = L.D_BUDGET_LIST_ID
         inner join Default_Product P on p.product_id = D.PRODUCT_ID
         where L.DEPARTMENT_BUDGET_ID = \' ||
                 DEPARTMENT_BUDGET_ID_Param ||
                 \' and D.Deleted = 0
         group by D.PRODUCT_ID,P.PRODUCT_NAME   \';
      --测试
      DBMS_OUTPUT.put_line(SQLSTR);
      DBMS_OUTPUT.put_line(SQLSTR2);
      SQLSTR := SQLSTR || SQLSTR2;
      --测试结束
      --  SQLSTRTotal := SQLSTRTotal || \',sum(D.Total) as \"合计\" from D_BUDGET_LIST_DETAIL D
      --     inner join D_BUDGET_LIST L on D.D_BUDGET_LIST_ID = L.D_BUDGET_LIST_ID
      --     where L.DEPARTMENT_BUDGET_ID = \' ||
      --                 DEPARTMENT_BUDGET_ID_Param;

      open out_cur for SQLSTR;
    END sp_D_Management_Cost_Pivot;
    /
    这是存储过程

    回复
    2012-03-22 11:40 
  • 123456 123456(提问者)

    现在还有这样的一个问题
    如图
    [attach]4041[/attach]
    框框中得数据列中得数据是动态生成的
    但是如果 我不拖拽到单元格中的话 还是没办法得到这一个数据列的值是么~
    比方说
    我拖动了
    1月 2 月
    就只能显示 1 月 2 月
    有没有办法 使得 所有的数据列都可以显示呢?
    回复
    2012-03-22 11:43 
最佳回答
0
123456发布于2012-3-22 11:40(编辑于 2023-9-6 09:34)
555
最佳回答
0
123456发布于2012-3-22 11:43(编辑于 2023-9-6 09:34)
555
  • nageqd nageqd

    你可以用横向扩展呀
    回复
    2012-04-04 10:16 
最佳回答
0
123456发布于2012-3-22 11:48(编辑于 2023-9-6 09:34)
555
最佳回答
0
nageqd发布于2012-4-4 10:16(编辑于 2023-9-6 09:34)
555
  • 123456 123456(提问者)

    这个问题 我也解决了~
    是用的是 =colname 这样的一个公式
    忘记在这里说明一下了
    回复
    2012-04-04 10:20 
最佳回答
0
123456发布于2012-4-4 10:20(编辑于 2023-9-6 09:34)
555
  • nageqd nageqd

    是吗,我学习了,呵呵,我没有哪样用过,有时间 会试一下,你用的是什么版本的
    回复
    2012-04-04 10:30 
最佳回答
0
nageqd发布于2012-4-4 10:30(编辑于 2023-9-6 09:34)
555
  • 123456 123456(提问者)

    用的是  7.0 版本的~
    这样的一个做法 有一个问题 就是在用 =value 时
    如果 纵列 横列 如果值为空
    就会报错的
    回复
    2012-04-04 11:08 
最佳回答
0
123456发布于2012-4-4 11:08(编辑于 2023-9-6 09:34)
555
  • nageqd nageqd

    是新版本呀!
    回复
    2012-04-04 11:10 
最佳回答
0
nageqd发布于2012-4-4 11:10(编辑于 2023-9-6 09:34)
555
  • 123456 123456(提问者)

    对滴呀~   发现 7.0 用存储过程 的感觉 很奇特 所有的模板都有之前的 存储过程数据集
    而且 datasource 要一直重新部署  
    总是 丢三落四的我 表示压力很大
    回复
    2012-04-04 11:15 
  • 0关注人数
  • 1775浏览人数
  • 最后回答于:2012-4-4 11:22
    活动推荐 更多
    热门课程 更多
    返回顶部