programing

ORA-22275 오류: 잘못된 LOB 로케이터가 지정되었습니다.

newsource 2023. 10. 27. 21:57

ORA-22275 오류: 잘못된 LOB 로케이터가 지정되었습니다.

BLOB 변수를 PDF 문서로 채우는 절차가 있습니다.제가 하려는 것은 고정된 날짜로부터 60일 이내에 PDF 문서만 표시하도록 로직을 추가하는 것입니다.아래 참조:

check_staticdate     number(1); 

function DisplayPDF (audit in number) RETURN blob is

person_id     person.person_id%type;
z_lob         blob;
blob_length   NUMBER;


CURSOR getPDF(audit number) IS
   select report
   from report_table
   where report_type = 'PDF'
   and job_no = audit order by rec_no;


begin

/* Check Valid ID */
if not package.ValidID(person_id, check_only=>TRUE) then
   return z_lob;
end if;


/* Here is the case statement.*/
select case
   when exists
      (
       SELECT 'x' from table
       where table_id = person_id
       and trunc(sysdate) < trunc(table_static_date + 60)
      )

    then 1
    else 0
   end into check_staticdate
from dual;


if (check_staticdate = 0) then
   return z_lob;
end if;



open getPDF(audit);
fetch getPDF into z_lob;
close getPDF;
return z_lob;


end DisplayPDF;

제가 받는 오류는 다음과 같습니다.ORA-22275: invalid LOB locator specified.

Oracle SQL을 처음 사용하는데 왜 내가 유효한지 잘 모르겠습니다.ID 체크는 z_lob을 반환하여 작동하지만 나의 case statement는 작동하지 않습니다.

편집: 전체 오류 스택 추가 중

Failed to execute target procedure ORA-22275: invalid LOB locator specified

ORA-06512: at "SYS.WPG_DOCLOAD", line 51

ORA-06512: at "User.Package", line 733

ORA-06512: at line 33

임시로 먼저 로브 초기화합니다.

DBMS_LOB.CREATETEMPORARY(z_lob,true); --true if you want it to be cached.

사용자의 기능이 반환되는 것 같습니다(사용자에 따라).auditparameter value) NULL 값을 가진 blob.SYS.WPG_DOCLOAD처리되지 않은 예외를 던지는 메소드입니다.

아마도 당신은 당신의 것을 수정할 수 있을 것입니다.return z_lob;되려고return nvl(z_lob, empty_blob());

언급URL : https://stackoverflow.com/questions/13978242/ora-22275-error-invalid-lob-locator-specified