2016-09-30 8 views
0

Ich muss Tabellen in SQL Server von Oracle über Datenbankverbindungen abfragen. Eine der SQL Server-Tabellen, die ich abfragen muss, hat eine NVARCHAR Spalte mit einer maximalen Länge von 3000 Zeichen. Oracle behandelt, dass als LONG Datentyp so versucht TO_NCHAR zu verwenden, so dass ich die Werte lesen kann, gibt die folgende Fehlermeldung:Konvertieren von SQL Server NVARCHAR (3000) zu Oracle NCHAR

ORA-00932: inconsistent data types: expected NCHAR got NLONG

Gibt es eine Möglichkeit in Oracle, mit SQL oder PL/SQL, um den Wert zu erhalten, oder höchstens die ersten 2000 Zeichen aus der Spalte NVARCHAR(3000)?

+0

Warum LANG und nicht CLOB? – JohnHC

+0

ich heute Morgen, dass ein Schuss gab TO_NCLOB mit, erhielt aber den folgenden Fehler: ORA-22992: kann nicht LOB Locators ausgewählt aus entfernten Tabellen – TomServo

+0

try CAST (column_name AS NVARCHAR2 (3000)) – schurik

Antwort

0

Wenn Sie eine Zeichenfolge variabler Länge deklarieren müssen, müssen Sie die maximale Länge dieser Zeichenfolge angeben. Zum Beispiel der Datentyp VARCHAR2. Das folgende Beispiel zeigt die Deklaration und mit einigen String-Variablen:

Verwandte Themen