मेरे पास एक प्रक्रिया है जो एक पीडीएफ दस्तावेज़ के साथ एक बीएलओबी वैरिएबल को पॉप्युलेट करता है। मैं जो करने की कोशिश कर रहा हूं वह एक स्थिर तारीख से 60 दिनों की अवधि के भीतर ही पीडीएफ दस्तावेज़ को प्रदर्शित करने के लिए तर्क जोड़ना है। नीचे देखें:ORA-22275 त्रुटि: अमान्य LOB लोकेटर निर्दिष्ट
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 करने के लिए नया हूँ, और अनिश्चित हूं क्यों z_lob वापस लौट कर मेरी ValidID जाँच काम करता है लेकिन मेरे मामले बयान नहीं है।
संपादित करें: जोड़ना पूर्ण त्रुटि ढेर
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
मुझे यकीन है कि आप इस के लिए ऋण मिल बनाना चाहते थे के साथ अपने कार्य Initialise। यह फिर से सौंप दिया गया और फिर से प्राथमिकता प्राप्त हो गया। हालांकि, आपका जवाब अंततः काम किया। धन्यवाद! – Phoenix
'DBMS_LOB.OPEN' के साथ साथ, इस तरह - ' DBMS_LOB.CREATETEMPORARY ( lob_loc => z_lob , कैश => true , dur => dbms_lob.call); डीबीएमएस_LOB.OPEN ( lob_loc => z_lob , open_mode => DBMS_LOB.LOB_READWRITE); ' - और यह काम करता है। – PhistucK