terça-feira, 12 de agosto de 2008

Invalid LOB locator specified

Durante umas largas horas estive à luta com um erro muito "abrangente" cuja mensagem é a seguinte:

ORA-22275: invalid LOB locator specified

As condições nas quais o erro apareceu foram:
  • Base de dados Oracle 9
  • Chamada à BD a partir de uma classe Java
  • Chamada a um Store Procedure Oracle (PL/SQL)
  • O retorno era um CURSOR que continha lá dentro, entre outros um BLOB
  • Sempre que se tentava fazer algo com o BLOB (aceder a qualquer propriedade), o erro aparecia.
Depois de alguma investigação, chegou-se à conclusão (se é certa ou não isso já é outra história) de que não é possível ler um BLOB que tenha sido retornado dentro de um CURSOR.

Ou seja o Store Procedure tem de devolver o BLOB directamente e não através de um CURSOR.

Sem comentários: