Elaborazione Oracle ORDImage in PL/SQL:Ottenere IMG-00710 e ORA-01031
Domanda
Ho caricato l'immagine in un nuovo oggetto Oracle ORDImage inizializzato e la sto elaborando tramite PL/SQL.Posso leggere le sue proprietà, ma non posso elaborarlo con il metodo process().
vLocalImage ORDImage := ORDImage.init();
...
vLocalImage.source.localdata := PORTAL.wwdoc_admin.get_document_blob_content(pFile);
vLocalImage.setProperties();
...
if vLocalImage.width > lMaxWidth
then
vLocalImage.process('maxScale 534 401');
end if;
Ciò dovrebbe ridimensionare l'immagine, conservando le proporzioni, in modo che non sia più larga di 534 px e alta non più di 401 px.
Tuttavia, ottengo il seguente stack di errori:
Internal error: ORA-29400: data cartridge error
IMG-00710: unable to write to destination image
ORA-01031: insufficient privileges
Provare altre operazioni (come "ruotare di 90") dà gli stessi errori.
Soluzione
Anche se la documentazione afferma che dovrebbe essere possibile modificare un ORDImage "sul posto", non sono riuscito a farlo funzionare.
Invece, ho creato un nuovo oggetto ORDImage e ho utilizzato processCopy:
vNewImage ORDImage;
...
vLocalImage.processCopy('maxScale 534 401', vNewImage);
Altri suggerimenti
Puoi mostrare l'istruzione select che usi per ottenere l_ordimage?La causa principale di questo errore sembra essere se non hai "for update" nell'istruzione select, ma al momento non riesco a far eseguire il test a Intermedia.