找回密码
 注册成为天翎用户
楼主: yf247452523

[已解决] 是不是写了存储过程的视图不能导出excel

[复制链接]
kimi 发表于 2014-1-8 10:32:52 | 显示全部楼层
您好:那请问您执行导出后tomcat控制台有报错么?如果有错误信息是什么呢?可以方便贴出来么?
 楼主| yf247452523 发表于 2014-1-9 17:03:02 | 显示全部楼层
java.lang.Exception: not support type [out]
        at cn.myapps.core.dynaform.document.dao.AbstractDocStaticTblDAO.parsePar
ameters(AbstractDocStaticTblDAO.java:2954)
        at cn.myapps.core.dynaform.document.dao.AbstractDocStaticTblDAO.countByP
rocedure(AbstractDocStaticTblDAO.java:1183)
        at cn.myapps.core.dynaform.document.ejb.DocumentProcessBean.countByProce
dure(DocumentProcessBean.java:1751)
        at cn.myapps.core.dynaform.view.ejb.editmode.ProcedureEditMode.count(Pro
cedureEditMode.java:63)
        at cn.myapps.core.dynaform.view.ejb.type.AbstractType.countViewDatas(Abs
tractType.java:28)
        at cn.myapps.core.dynaform.view.ejb.ExcelFileBuilder.buildSheet(ExcelFil
eBuilder.java:76)
        at cn.myapps.core.dynaform.view.ejb.ExcelFileBuilder.buildSheet(ExcelFil
eBuilder.java:174)
        at cn.myapps.core.dynaform.view.ejb.ViewProcessBean.expDocToExcel(ViewPr
ocessBean.java:118)
        at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$55
093bfe.CGLIB$expDocToExcel$1(<generated>)
        at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$55
093bfe$$FastClassByCGLIB$$70d5e3d.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at cn.myapps.protection.util.WarpProcessFactory.intercept(WarpProcessFac
tory.java:272)
        at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$55
093bfe.expDocToExcel(<generated>)
        at cn.myapps.core.dynaform.view.action.ExcelExpServlet.doExcelExp(ExcelE
xpServlet.java:72)
        at cn.myapps.core.dynaform.view.action.ExcelExpServlet.doPost(ExcelExpSe
rvlet.java:58)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterD
ispatcher.java:177)
        at cn.myapps.base.web.filter.OBPMFilterDispatcher.doFilter(OBPMFilterDis
patcher.java:43)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at cn.myapps.base.web.filter.AjaxMultiLanguageFilter.doFilter(AjaxMultiL
anguageFilter.java:43)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at cn.myapps.base.web.filter.PersistenceFilter.doFilter(PersistenceFilte
r.java:26)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at cn.myapps.base.web.filter.SecurityFilter.doFilter(SecurityFilter.java
:90)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(Asserti
onThreadLocalFilter.java:54)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(Ht
tpServletRequestWrapperFilter.java:75)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilt
er(AbstractTicketValidationFilter.java:197)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at cn.myapps.core.sso.cas.filter.OBPMAuthenticationFilter.doFilter(OBPMA
uthenticationFilter.java:84)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignO
utFilter.java:76)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at cn.myapps.base.web.filter.EncodingFilter.doFilter(EncodingFilter.java
:28)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:48
9)
        at java.lang.Thread.run(Thread.java:619)
echochen 发表于 2014-1-9 17:21:48 | 显示全部楼层
您好,该问题问过研发,应该是您的存储过程中有类型不匹配,但该bug已经修复过,稍后本地给您测试一下先。
echochen 发表于 2014-1-9 17:50:46 | 显示全部楼层
您好,本地测试没有发现您的问题呢。

或者您贴一下您的存储过程?
 楼主| yf247452523 发表于 2014-1-10 10:13:15 | 显示全部楼层
create or replace package body Sp_zb_dfhz as
procedure pro_zb_dfhz(p_mc1 in VARCHAR2,p_mc2 in VARCHAR2,p_md in VARCHAR2,p_mr in VARCHAR2, c_ref out t_cursor) is
   --定义变量
  n_number           number;
  n_number_2         number;
  n_squ              number;
  n_score            number(10,2);
  n_score_hz         number(10,2);
  v_dept_hz          VARCHAR2(4000);
  v_dept_qt          VARCHAR2(4000);
  v_dept_ph          VARCHAR2(4000);
  v_cz_year          VARCHAR2(4000);
  v_cz_zqlx          VARCHAR2(4000);
  rszbmpdf                  SYS_REFCURSOR;
  p_m2               VARCHAR2(4000);
  cursor rszbmpdf_hz is
      select
       d.name as ITEM_部门名称,
       a.ITEM_母子指标所占比例 as ITEM_母子,
       a.item_指标名称 as ITEM_指标 ,
       a.ITEM_权重 as Item_权重,
       b.ITEM_责任系数 as Item_责任,
       c.ITEM_指标排名 as Item_排名,
       c.ITEM_指标得分 as Item_得分,
       d.DOMAINID,d.ID
       from tlk_指标库管理 a, TLK_指标得分责任系数  b,tlk_指标排名得分 c,T_DEPARTMENT d
       where ((a.ITEM_牵头部门 like '%'||p_md||'%' and a.ITEM_指标类型 ='考核') or (a.ITEM_配合部门 like '%'||p_md||'%' and a.ITEM_指标类型 ='考核'))
       and d.id=p_md
       and b.ITEM_配合部门=d.name
       --and (b.ITEM_部门名称=d.name or b.ITEM_配合部门 = d.name)
       and b.ITEM_指标名称=a.ITEM_指标名称
       and c.ITEM_指标名称=a.ITEM_指标名称
       and b.ITEM_年度 =p_mc1
       and b.ITEM_周期类型 = p_mc2
       and c.ITEM_年度 = p_mc1
       and c.ITEM_周期类型 =p_mc2 ;
       c_row rszbmpdf_hz%rowtype;

  BEGIN
    --初始值赋值
    n_number := 0;
    n_number_2 :=0;
    p_m2 := p_mc2;
    if p_m2 = '半年度' then
      p_m2 := '三季度';
    end if;
    --打开游标
      open rszbmpdf_hz;
      --循环游标
      loop
        fetch rszbmpdf_hz into c_row;
        exit when rszbmpdf_hz%notfound;
        if rszbmpdf_hz%found then
           --查询记录是否存在
           select count(*) into n_number from tlk_指标得分汇总 where ITEM_部门名称 = c_row.ITEM_部门名称 and ITEM_指标名称 = c_row.ITEM_指标 and ITEM_周期类型 like '%'||p_mc2||'%';


           --根据指标排名得到指标排名系数
           if(c_row.Item_排名 is not null) then
               case  c_row.Item_排名
                    when  1 then
                     n_score:=1;
                    when 2 then
                     n_score:=1;
                    when 3 then
                     n_score:=1;
                    when 4 then
                     n_score:=1;
                    when 5 then
                     n_score:=1;
                    when 6 then
                     n_score:=0.5;
                    when 7 then
                     n_score:=0.5;
                    when 8 then
                     n_score:=-0.5;
                    when 9 then
                     n_score:=-0.5;
                    when 10 then
                     n_score:=-0.5;
                    else
                     n_score:=1;
            end case;
            --计算得分
           if c_row.Item_排名 <= 10 then
              if c_row.ITEM_母子 = 0  then
                 n_score_hz :=n_score * c_row.ITEM_得分 *(c_row.ITEM_责任/100);
              else
                 n_score_hz:= n_score*c_row.ITEM_得分*(c_row.ITEM_责任/100)*c_row.ITEM_母子;
              end if;
           else
                 n_score_hz := -1 * c_row.ITEM_权重;
           end if;
           else
               n_score_hz := 0;
           end if;
           select  ITEM_牵头部门,ITEM_配合部门 into v_dept_qt,v_dept_ph  from TLK_指标库管理 where ITEM_指标名称 = c_row.ITEM_指标 and ITEM_周期类型 like '%'||p_m2||'%';
           if v_dept_qt like '%'||p_md||'%'  then
             v_dept_hz:='牵头部门';
          elsif v_dept_ph like '%'||p_md||'%' then
             v_dept_hz:='配合部门';
           end if;
 楼主| yf247452523 发表于 2014-1-10 10:25:39 | 显示全部楼层
--名称在表单中不存在,则新增一条记录
           if n_number = 0 then
             --取序列号id值
              n_squ := aaa.nextval;
              --插入系统表t_document
                                 INSERT INTO t_document (
                                 ID,
                                 LASTMODIFIED,
                                 FORMNAME,
                                 AUDITDATE,
                                 AUTHOR,
                                 CREATED,
                                 FORMID,
                                 ISTMP,
                                 VERSIONS,
                                 APPLICATIONID,
                                 LASTMODIFIER,
                                 DOMAINID,
                                 MAPPINGID)
                                 VALUES(
                                 n_squ,
                                 sysdate,
                                 '楚雄供电局综合管理系统/楚雄供电局绩效管理系统/汇总报表/绩效考核汇总/指标得分汇总',
                                 sysdate,
                                 '11e2-ef7c-468ec130-9773-55c246db6014',
                                 sysdate,
                                 '11e3-16db-542b7646-b516-55f276babf1b',
                                 0,
                                 1,
                                 '11e2-ed14-77e8cad7-b3e1-ab5a91ed53a2',
                                 sysdate,
                                 '11e2-ed14-6d62db45-b3e1-ab5a91ed53a2',
                                 n_squ);
                 --插入表单数据

                           INSERT INTO tlk_指标得分汇总
                                       (ITEM_部门名称,
                                        ITEM_指标名称,
                                        ITEM_责任系数,
                                        ITEM_权重,
                                        ITEM_指标排名,
                                        ITEM_指标得分系数,
                                        ITEM_年度,
                                        ITEM_周期类型,
                                        ITEM_得分,
                                        ITEM_责任关系,
                                        ITEM_指标得分,
                                        ID,
                                        FORMNAME,
                                        FORMID,
                                        APPLICATIONID,
                                        DOMAINID,
                                        versions)
                                        VALUES (
                                        c_row.item_部门名称,
                                        c_row.item_指标,
                                        c_row.ITEM_责任,
                                        c_row.ITEM_权重,
                                        c_row.ITEM_排名,
                                        n_score,
                                        p_mc1,
                                        p_mc2,
                                        n_score_hz,
                                        v_dept_hz,
                                        c_row.Item_得分,
                                        n_squ,
                                        '楚雄供电局综合管理系统/楚雄供电局绩效管理系统/汇总报表/绩效考核汇总/指标得分汇总',
                                        '11e3-16db-542b7646-b516-55f276babf1b',
                                        '11e2-ed14-77e8cad7-b3e1-ab5a91ed53a2',
                                        '11e2-ed14-6d62db45-b3e1-ab5a91ed53a2',
                                        1
                                        );
    --如果存在记录,判断是否存在时间周期相同的记录,存在则不insert,不存在则insert
               else
                    open rszbmpdf for select ITEM_年度,ITEM_周期类型 from tlk_指标得分汇总  where ITEM_部门名称 = c_row.ITEM_部门名称 and ITEM_指标名称 = c_row.ITEM_指标 and ITEM_周期类型 like '%'||p_mc2||'%';
                     loop
                      fetch rszbmpdf into v_cz_year,v_cz_zqlx;
                      exit when rszbmpdf%notfound;
                      if rszbmpdf%found then
                        select count(*) into n_number_2
                        from tlk_指标得分汇总
                        where ITEM_部门名称 = c_row.ITEM_部门名称
                        and ITEM_年度 =p_mc1
                        and ITEM_周期类型 =p_mc2
                        and ITEM_指标名称 = c_row.ITEM_指标;
                        if n_number_2 = 0 then
                          n_squ := aaa.nextval;
                              --插入系统表t_document
                              INSERT INTO t_document (
                                 ID,
                                 LASTMODIFIED,
                                 FORMNAME,
                                 AUDITDATE,
                                 AUTHOR,
                                 CREATED,
                                 FORMID,
                                 ISTMP,
                                 VERSIONS,
                                 APPLICATIONID,
                                 LASTMODIFIER,
                                 DOMAINID,
                                 MAPPINGID)
                                 VALUES(
                                 n_squ,
                                 sysdate,
                                 '楚雄供电局综合管理系统/楚雄供电局绩效管理系统/汇总报表/绩效考核汇总/指标得分汇总',
                                 sysdate,
                                 '11e2-ef7c-468ec130-9773-55c246db6014',
                                 sysdate,
                                 '11e3-16db-542b7646-b516-55f276babf1b',
                                 0,
                                 1,
                                 '11e2-ed14-77e8cad7-b3e1-ab5a91ed53a2',
                                 sysdate,
                                 '11e2-ed14-6d62db45-b3e1-ab5a91ed53a2',
                                 n_squ);
                             --插入表单数据
                              INSERT INTO tlk_指标得分汇总
                             (ITEM_部门名称,
                              ITEM_指标名称,
                              ITEM_权重,
                              ITEM_责任系数,
                              ITEM_指标排名,
                              ITEM_指标得分系数,
                              ITEM_年度,
                              ITEM_周期类型,
                              ITEM_得分,
                              ITEM_责任关系,
                              ITEM_指标得分,
                              ID,
                              FORMNAME,
                              FORMID,
                              APPLICATIONID,
                              DOMAINID,
                              versions)
                              VALUES (
                              c_row.item_部门名称,
                              c_row.item_指标,
                              c_row.ITEM_权重,
                              c_row.ITEM_责任,
                              c_row.ITEM_排名,
                              n_score,
                              p_mc1,
                              p_mc2,
                              n_score_hz,
                              v_dept_hz,
                              c_row.Item_得分,
                              n_squ,
                              '楚雄供电局综合管理系统/楚雄供电局绩效管理系统/汇总报表/绩效考核汇总/指标得分汇总',
                              '11e3-16db-542b7646-b516-55f276babf1b',
                              '11e2-ed14-77e8cad7-b3e1-ab5a91ed53a2',
                              '11e2-ed14-6d62db45-b3e1-ab5a91ed53a2',
                              1
                              );
                        else
                             update tlk_指标得分汇总
                             set ITEM_权重 = c_row.ITEM_权重,
                             ITEM_责任系数 = c_row.ITEM_责任,
                             ITEM_指标排名 = c_row.ITEM_排名,
                             ITEM_得分 = n_score_hz,
                             ITEM_指标得分 = c_row.Item_得分,
                             ITEM_指标得分系数 = n_score
                             where ITEM_部门名称 = c_row.ITEM_部门名称
                             and ITEM_指标名称 = c_row.ITEM_指标
                             and ITEM_周期类型 =p_mc2
                             and ITEM_年度 = p_mc1;
                        end if;
                      end if;
                  end loop;
                  close rszbmpdf;
           end if;
        end if;
      end loop;
      close rszbmpdf_hz;
      --查询输出表单数据
      if p_mr='管理员' or p_mr = '供电局牵头部门绩效员企管部绩效员' then
        open c_ref for select * from tlk_指标得分汇总
        where ITEM_年度 = p_mc1
        and ITEM_周期类型 = p_mc2
        --and ITEM_责任系数 is not null  
        and ITEM_指标名称 != '安全管理'
        order by ITEM_指标名称,ITEM_责任关系;
      else
        open c_ref for
        select * from tlk_指标得分汇总
        where ITEM_年度 = p_mc1
        and ITEM_周期类型 = p_mc2
        and ITEM_部门名称 = c_row.ITEM_部门名称
        --and ITEM_责任系数 is not null
        and ITEM_指标名称 != '安全管理'
        order by ITEM_指标名称,ITEM_责任关系;
      end if;
       Exception
         When others then
         DBMS_OUTPUT.put_line('sqlcode:' ||sqlcode);
         DBMS_OUTPUT.put_line('sqlerrm:' ||substr(Sqlerrm,1,100));
    Rollback;
  END pro_zb_dfhz;
end SP_zb_dfhz;
sophie 发表于 2014-1-10 13:00:41 | 显示全部楼层
您好,本地在orcale数据库下,调用带参数的存储过程,导出数据时可以正常导出,没有报您所说的错误,所以麻烦您提供一下您的数据,本地再用您的数据调试一下。
sophie 发表于 2014-1-12 21:36:49 | 显示全部楼层
该问题用客户的数据在本地调试,没有问题,可以正常导出数据(已给客户看过效果),可能是客户打补丁没打对,现让客户重新打补丁再尝试,有结果再跟进
sophie 发表于 2014-1-13 08:59:55 | 显示全部楼层
Q上客户反馈,重新打补丁该问题已解决。

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-9-27 17:29

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表