Oracle
 sql >> Base de données >  >> RDS >> Oracle

Parameter.AsString échouant sous Oracle/MSSQL - Parameter.Value caractères de 2 octets sous Oracle

Voici la raison pour laquelle cela ne fonctionne pas :

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

En effet, probablement peut-être des problèmes .

La solution consiste à ajouter une règle de mappage qui convertit dtWideHMemo vers dtMemo .
Après cela, lecture et écriture dans le CLOB .AsString fonctionne bien.

Signalé comme RSP-19600 dans le portail de qualité Embarcadero.

Pour être complet :car le mappage mentionné dans mon autre réponse n'est plus actif, il faut modifier l'accès aux paramètres avec .Value au lieu de .AsString.