sql >> Base de Datos >  >> RDS >> Oracle

Parámetro.AsString falla en Oracle/MSSQL - Parámetro.Valor caracteres de 2 bytes en Oracle

Esta es la razón por la que no funciona:

En 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 hecho, probablemente puede haber problemas .

La solución es agregar una regla de mapeo que convierta dtWideHMemo a dtMemo .
Después de eso, leer y escribir en CLOB .AsString funciona bien.

Reportado como RSP-19600 en el Portal de Calidad de Embarcadero.

Para completar:debido a que el mapeo mencionado en mi otra respuesta ya no está activo, debe cambiar el acceso a los parámetros con .Value en lugar de .AsString.