Oracle
 sql >> Database >  >> RDS >> Oracle

Parameter.AsString non riuscito in Oracle/MSSQL - Parameter.Value caratteri a 2 byte in Oracle

Ecco il motivo per cui non funziona:

In 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;

Infatti, probabilmente potrebbero esserci dei problemi .

La soluzione è aggiungere una regola di mappatura che converta dtWideHMemo a dtMemo .
Dopo di ciò, leggere e scrivere nel CLOB .AsString funziona bene.

Segnalato come RSP-19600 nel Portale Qualità Embarcadero.

Per completezza:poiché la mappatura menzionata nell'altra mia risposta non è più attiva, devi modificare l'accesso ai parametri con .Value invece di .AsString.