title: ORA-22275 error: invalid LOB locator specified
body: <p>I have a procedure that populates a BLOB variable with a PDF document. What I am trying to do is add logic to only display the PDF document within a 60 day period from a static date. See below:</p>
  
  <pre><code>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=&gt;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) &lt; 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;
  </code></pre>
  
  <p>The error I am receiving is: <code>ORA-22275: invalid LOB locator specified.</code> </p>
  
  <p>I am new to Oracle SQL, and am unsure why my ValidID check works by returning z_lob but my case statement does not.</p>
  
  <p><strong>Edit: Adding full error stack</strong></p>
  
  <pre><code>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
  </code></pre>