Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Parameter.AsString schlägt unter Oracle/MSSQL fehl - Parameter.Value 2-Byte-Zeichen unter Oracle

Hier ist der Grund, warum es nicht funktioniert:

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;

In der Tat kann es wahrscheinlich Probleme geben .

Die Lösung besteht darin, eine Zuordnungsregel hinzuzufügen, die dtWideHMemo konvertiert zu dtMemo .
Danach Lesen und Schreiben in den CLOB .AsString funktioniert gut.

Gemeldet als RSP-19600 im Embarcadero-Qualitätsportal.

Der Vollständigkeit halber:Da das in meiner anderen Antwort erwähnte Mapping nicht mehr aktiv ist, müssen Sie den Zugriff auf die Parameter mit .Value ändern statt .AsString.