2016-05-03 5 views
1

Ich verwende OrientDB und versuche, neue Eigenschaft zu erstellen, nachdem ich meine Daten eingefügt habe (Millionen von Zeilen).OrientDB erzwingt Eigenschaftstyp als Zeichenfolge

Ich versuche, Immobilien auf V zu schaffen, um einen Index zu erstellen, und ich die folgende Fehlermeldung erhalten:

The database contains some schema-less data in the property 'V.ACCOUNT_NO' that is not compatible with the type STRING. Fix those records and change the schema again [ONetworkProtocolHttpDb]

nun Teil des Typs Feld INTEGER ist, aber es scheint mir, dass es sehr einfach, den Typ in STRING umzuwandeln.
Wie kann ich es mit den gesamten Daten tun?

Antwort

3

habe ich versucht, Ihren Fall durch diese einfache Struktur in Schema losen Modus zu erstellen:

enter image description here

Diese Aufzeichnungen sind eine Mischung aus INTEGER und STRING Typen:

enter image description here

Sie jetzt kann den Typ der Nicht-Zeichenfolgen mithilfe dieser Abfrage konvertieren:

UPDATE V SET ACCOUNT_NO = ACCOUNT_NO.asString() WHERE ACCOUNT_NO.type() <> 'STRING' 

Ausgang:

enter image description here

über Ausnahme, bekam ich richtig den gleichen Fehler, wenn ich versuche V.ACCOUNT_NO vom Typ eine neue Eigenschaft zu erstellen STRING in schema-Vollmodus und das ist richtig, weil die Eigenschaft existiert bereits in der Datenbank und enthält gemischte Typen von Datensätzen, obwohl im schemalosen Modus.

Sobald alle Datensätze konvertiert wurden, können Sie die neue Eigenschaft erstellen.

enter image description here

Hoffe, dass es

+0

Hallo hilft, haben Sie eine Chance haben, meine Lösung zu versuchen? – LucaS

+0

Hallo, haben Sie überprüft, ob meine Lösung in Ihrem Fall richtig funktioniert? – LucaS