Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Parameter.AsString falhando no Oracle/MSSQL - Parameter.Value caracteres de 2 bytes no Oracle


Aqui está o motivo pelo qual não funciona:

Em FireDAC.Stan.Option :
procedure TFDFormatOptions.ColumnDef2FieldDef()
...
dtWideHMemo:
  // Here was ftOraClob, but then will be created TMemoField,
  // which does not know anything about Unicode. So, I have
  // changed to ftFmtMemo. But probably may be problems ...
  ADestFieldType := ftWideMemo;

De fato, provavelmente pode haver problemas .

A solução é adicionar uma regra de mapeamento que converte dtWideHMemo para dtMemo .
Depois disso, lendo e escrevendo no CLOB .AsString funciona bem.

Relatado como RSP-19600 no Portal da Qualidade Embarcadero.

Para completar:como o mapeamento mencionado na minha outra resposta não está mais ativo, você deve alterar o acesso aos parâmetros com .Value em vez de .AsString.