sql >> Databasteknik >  >> RDS >> Oracle

Parameter.AsString misslyckas under Oracle/MSSQL - Parameter.Value 2-byte-tecken under Oracle

Här är anledningen till att det inte fungerar:

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

Faktum är att förmodligen kan vara problem .

Lösningen är att lägga till en mappningsregel som konverterar dtWideHMemo till dtMemo .
Därefter kan du läsa och skriva till CLOB .AsString fungerar bra.

Rapporterad som RSP-19600 i Embarcadero Quality Portal.

För fullständighetens skull:eftersom kartläggningen som nämns i mitt andra svar inte längre är aktiv måste du ändra åtkomst till parametrarna med .Value istället för .AsString.



  1. Kontrollera om en Postgres JSON-array innehåller en sträng

  2. Omedelbar filinitiering:Inverkan under installationen

  3. Hantera icke-existerande värden i sql-frågeuttryck för ssrs-diagram

  4. Hur ansluter man till PostgreSQL från Phoenix Web App via SSL?