Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Oracle报表12c保存为PDF文件_Oracle_Weblogic12c_Oracleforms_Oraclereports - Fatal编程技术网

将Oracle报表12c保存为PDF文件

将Oracle报表12c保存为PDF文件,oracle,weblogic12c,oracleforms,oraclereports,Oracle,Weblogic12c,Oracleforms,Oraclereports,我有下面的代码,它为表中的每个记录生成一个pdf文件,其中包含一个特定文件夹的电子邮件地址,但我意识到,在每个迭代中,URL都会附加到下一个迭代中,这使得URL在每个循环中都会增加。因此,当浏览器达到极限后,它会抛出一个错误,只生成10个文件,而我预期的是1500个pdf文件 PROCEDURE RUN_REPORT2 IS M_PARAM_ID PARAMLIST ; M_REP_ID VARCHAR2(3000); V_R

我有下面的代码,它为表中的每个记录生成一个pdf文件,其中包含一个特定文件夹的电子邮件地址,但我意识到,在每个迭代中,URL都会附加到下一个迭代中,这使得URL在每个循环中都会增加。因此,当浏览器达到极限后,它会抛出一个错误,只生成10个文件,而我预期的是1500个pdf文件

PROCEDURE RUN_REPORT2 IS   
    M_PARAM_ID      PARAMLIST ;    
    M_REP_ID        VARCHAR2(3000);    
    V_REP_CURRENCY  VARCHAR2(5);    
    V_BASE_CURRENCY VARCHAR2(5);    
    v_show_document VARCHAR2(30000);    
    v_report_name   VARCHAR2(30000);    
    v_format        VARCHAR2(200)   := 'PDF';
    
    CURSOR C1 IS 
    
    SELECT EMP_EMPLOYEE_NO,
           INITCAP(EMP_FIRSTNAME) EMP_FIRSTNAME,
           EMP_EMAIL_ADDRESS,
           TO_CHAR(PMA_PAY_PERIOD_TO, 'MONTH' || ' ' || 'YYYY') PAY_PERIOD,
           EMP_TIN DOB,
           TRIM(TO_CHAR(PMA_PAY_PERIOD_TO, 'MONTH')) PAY_MONTH,
           TRIM(TO_CHAR(PMA_PAY_PERIOD_TO, 'YYYY')) PAY_YEAR
      FROM HR_EMPLOYEES, PAY_PAYROLL_MASTER
     WHERE EMP_EMPLOYEE_ID = PMA_EMPLOYEE_ID
       AND EMP_COMPANY_CODE = PMA_COMPANY_CODE
       AND EMP_EMAIL_ADDRESS IS NOT NULL
       AND EMP_EMPLOYEE_NO BETWEEN :ONE.EMPNO_FM AND :ONE.EMPNO_TO
       AND TO_CHAR(PMA_PAY_PERIOD_TO, 'Month YYYY') = :ONE.PAY_PERIOD
       AND PMA_COMPANY_CODE = :GLOBAL.COMPNAME
    
BEGIN
        
    SELECT PAR_REPORT_URL, PAR_FORMS_DIRECTORY
      INTO v_show_document, v_report_name
      FROM APPS_PARAMETERS
     WHERE PAR_COMPANY_CODE = :GLOBAL.COMPNAME;
         
    FOR C1_R IN C1 LOOP    
      v_show_document := v_show_document
      
      || '&report='||v_report_name||'PAYSLIP_EIC_EMAIL.jsp'    
      || '&destype=file'    
      || '&desformat='||v_format    
      || '&P_EMPNO_FM='||C1_R.EMP_EMPLOYEE_NO    
      || '&P_EMPNO_TO=' ||C1_R.EMP_EMPLOYEE_NO    
      || '&P_DEPT_FM='||:ONE.DEPT_FM    
      || '&P_DEPT_TO=' ||:ONE.DEPT_TO    
      || '&P_REG_FM='||:ONE.REG_FM    
      || '&P_REG_TO=' ||:ONE.REG_TO    
      || '&P_REP_CURRENCY=' ||V_REP_CURRENCY    
      || '&P_PERIOD='||:ONE.PAY_PERIOD    
      || '&P_COMPCODE=' ||:GLOBAL.COMPNAME    
      || '&desname='||v_report_name||'EMAIL_FOLDER\'||C1_R.EMP_EMAIL_ADDRESS||' '||C1_R.EMP_FIRSTNAME||' 
      '||C1_R.PAY_MONTH||C1_R.PAY_YEAR||'.PDF';
      
      WEB.SHOW_DOCUMENT(v_show_document||'&cmdkey=userlogin','_blank');
    
      SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
      DESTROY_PARAMETER_LIST(M_PARAM_ID) ;
       
      CLEAR_MESSAGE;  
    END LOOP;
     
END;

我的理解是:

 v_show_document := v_show_document
    
    || '&report='||v_report_name||'PAYSLIP_EIC_EMAIL.jsp'    
应该是

 v_show_document := 
    
       '&report='||v_report_name||'PAYSLIP_EIC_EMAIL.jsp'    

否则,您每次都会将
v\u show\u文档
与上一个循环的迭代连接起来,使其变得庞大(或多或少无用)。

@Barbaros。这一点已经得到纠正。多谢各位