오라클 웹 애플리케이션에서 매우 오래된 보고서 생성 함수를 리팩토링하고 있습니다. JavaScript를 사용하여 URL을 구성하고 보고서를 실행하여 보고서를 실행했습니다. PL/SQL 프로 시저 (mod_pl/SQL
을 통해 호출)에서 데이터베이스에서 처리하려고합니다. 나는 그렇게 utl_http.begin_request
을 사용하려고하지만, 출력 파일 (PDF 형식 약 20 페이지, 1.5M) 큰 가끔 때, 나는 오류 접수 : 요청은 매우 간단 보내는pl/sql 프로 시저에서 oracle 리포트를 실행하십시오.
ORA-29259: end-of-input reached.
테스트 코드를 :
-------- 업그레이드 됨 2013/08/27 ------------------------------- ---------------------------
UTL_HTTP.set_transfer_timeout(1000);
--some params setting....
myIdent := SRW.RUN_REPORT(myPlist); --here raise the exception(ORA-29273:request_failed; ORA-29259: end-of-input reached.) and procedure stoped.
r_stat := SRW.report_status(myIdent,myPlist);
@ThinkJet, 도움을 주셔서 감사합니다. 보고서 서버에 로그온하여 프로그램에서이 예외가 발생한 후에도 보고서가 계속 실행되고 있으며 마지막으로 succefully을 완료했습니다. 여러 번 테스트 한 결과 요청을 시작한 후 5 분이 지나면 예외가 발생했습니다. 어떤 종류의 보고서를 실행하고 어떤 크기 (물론, 모든 큰 크기, 5 분 이상 실행)이었습니다. 오라클 응용 프로그램 서버의 구성과 관련이 있는지 궁금합니다.
누구에게이 아이디어가 있습니까? 많은 감사.
'SRW'은 Oracle Reports와 함께 설치된 [이벤트 기반 게시 API] (http://docs.oracle.com/cd/E21764_01/bi.1111/b32121/pbr_evnt001.htm#i1007523 :) 패키지입니다. – ThinkJet
보고 할 매개 변수를 게시하려면 [utl_http.write_text] (http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_http.htm#i1027870)를 사용하고 [utl_http.read_raw] (http : //docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_http.htm#i1026963) 데이터를 읽으시겠습니까? 보고서를 호출하는 데 사용 된 정확한 코드를 게시 할 수 있습니까? – ThinkJet
안녕하세요, @ ThinkJet, 매개 변수가 이미 URL에 위의 코드에서 'rpt_url'문자열은 "http : // localhost/reports/rwservlet? report = test_report.rdf&[email protected]_ID&destype=FILE&desformat=PDF&desname=/apps/입니다. app/test/lreports/test_report.pdf & p_name = tester & p_start_date = 042013 & p_code = L "로 변경하십시오. 난 그냥 요청을 보내, 다음 보고서 서버는 PDF를 생성, 읽기 또는 쓰기 또는 아무것도 다운로드 할 필요가 없습니다. 그래서 테스트 코드는 정확히 위와 동일합니다. –