Tenho o seguinte código em delphi para retornar a versão do banco de dados, que usa a função da API da Oracle "OCIServerVersion()". O problema é que essa função, em determinados bancos, retorna uma string com lixo, enquanto que em outros bancos retorna a descrição corretamente.
Os bancos com erro estão em servidores dos clientes e não são monitorados por nós, o que dificulta a avaliação do que pode estar havendo. Também não se trata de um bug da versão do Oracle, pois tive esse erro em bancos 10g e 11g.
Alguém mais teve esse problema? Sabem o que pode estar havendo?
function GetDatabaseVersion: String;
var
Error: POCIError;
Buffer: PAnsiChar;
begin
inherited;
// versão do banco
GetMem(Buffer, 256);
GetMem(Error, 256);
OCIServerVersion(OCISvcCtx, Error, Buffer, 255, 0);
Result := String(Buffer);
FreeMem(Error);
FreeMem(Buffer);
end;