Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Błąd Parameter.AsString w Oracle/MSSQL - Parameter.Value 2-bajtowe znaki w Oracle

Oto powód, dla którego to nie działa:

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

Rzeczywiście, prawdopodobnie mogą być problemy .

Rozwiązaniem jest dodanie reguły mapowania, która konwertuje dtWideHMemo do dtMemo .
Następnie odczytywanie i zapisywanie do CLOB .AsString działa dobrze.

Zgłoszone jako RSP-19600 w portalu jakości Embarcadero.

Dla kompletności:ponieważ mapowanie wymienione w mojej drugiej odpowiedzi nie jest już aktywne, musisz zmienić dostęp do parametrów za pomocą .Value zamiast .AsString.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. stan SQL [99999]; kod błędu [17004]; Nieprawidłowy typ kolumny:1111 ze sprężyną SimpleJdbcCall

  2. Używanie krotek w klauzuli ORACLE IN i warunku dla jednego elementu w krotce

  3. Wyzwalanie tylko dla zmienionych wartości

  4. Błąd niezdefiniowanego indeksu podczas uzyskiwania wyników przy użyciu nazwy pola w połączeniu oracle pdo

  5. Minus a różnica z wyjątkiem różnicy w ORACLE/SQL Server