Frage

Ich habe zwei select-Anweisungen durch „Vereinigung“ verbunden. Während diese Anweisung ausführen ich habe:

Fehlermeldung: SQL-Fehler: ORA-01790: Ausdruck muss denselben Datentyp haben wie die entsprechenden Ausdruck 01790. 00000 - „Ausdruck muss denselben Datentyp wie die entsprechende Ausdruck hat“

Vielleicht können Sie mir eine Beratung, wie dieses Problem zu diagnostizieren?

War es hilfreich?

Lösung 7

Wie ich in der Frage erwähnen mag ich Vorschläge für haben, wie mein Problem zu beheben. Was ich getan habe, ist eine Spalte zu einer Zeit, in jeder select-Anweisung aktiviert und festgestellt, dass ich Mismatch in der allerletzten Spalte meiner SQL UNION hatte. Vielen Dank für Ihre Teilnahme und hilft mir, aber ich wusste, dass ich Typenkonflikt hatte, was ich wusste nicht, wie zu beheben.

Andere Tipps

Ohne auf Ihrem SQL suchen, ich würde vermuten, dass Sie Spalten UNION'ed sind, die verschiedenen Datentypen haben.

Hier ist, was gefunden:

ORA-01790: Ausdruck muss denselben Datentyp hat als Ausdruck entsprechenden

Ursache:. Ein SELECT-Listenelement entspricht ein Element der Auswahlliste mit einem anderen Datentyp in einer anderen Abfrage des gleichen Satz Ausdrucks

Aktion: Überprüfen Sie, ob alle entsprechenden SELECT Listenelemente die gleichen Datentypen haben. Verwenden Sie die TO_NUMBER, TO_CHAR und TO_DATE Funktionen explizite Datenkonvertierungen zu tun.

Ich habe Ihre Frage nicht gesehen, aber ich bin zu raten, dass man wählen Sie in Ihrer Gewerkschaft die gleichen Spalten wie die andere nicht wählen.

Der Fehler ist Ihnen zu sagen, dass Sie union-ing Spalten mit unterschiedlichen Datentypen sind. Es gibt Oracle-Funktionen, die einen Typen in einer anderen (beispielsweise „to_char“) konvertieren, müssen Sie die Datentypen in ein gemeinsames Format konvertieren müssen oder zumindest einen in die andere. Wenn Sie die aktuelle Abfrage / types veröffentlichen würde es möglich sein, mehr specifc zu sein.

Klar, dass die Ausgabe für das Plakat wurde vor einem Jahrzehnte mehr als die Hälfte gelöst, doch ich darauf hinweisen jedem wollte müssen diesen Beitrag auf der Suche nach Hilfe zu lesen, dass die Reihenfolge der ausgewählten Eigenschaften (Spalten) von einer unioned Anweisung auf dem Spiel Nächster. Es ist nicht genug, um einfach die Namen haben und die Datentypen übereinstimmen, obwohl das in gewissem Sinne die Ursache ist. Aber aufgrund der Art, wie die Union Aussagen in Oracle behandelt werden, ist es möglich, nur die ORA-01790 Fehler aufgrund einer Fehlpaarung in der Reihenfolge der Spalten zu erhalten.

In meinem Fall hatte ich eine Abfrage mit einer UNION ALL von zwei wählt. Wählen Sie eine Spalte hatte den Namen „generic_column_name“ als 25. Element in der Auswahl, und das andere wählen hatte, dass gleiche Spalte „generic_column_name“ von der gleichen Datentyp genannt (I mehrere Möglichkeiten, durch harte Codierung getestet und auch gezwungen, Datentypkonvertierungen mit ). Allerdings wählen Sie die zweite dieses Produkt im 19. Platz hatte, so alle Spalten von dort wurden versetzt und dadurch die ORA-01790 Fehler ausgelöst.

Sie müssen sicherstellen, dass entsprechende Spalten in der Union den gleichen Datentyp haben. Der einfachste Weg, Spalten wäre ein Kommentar, indem man auf die Säule zu verengen und dann explizite Typkonvertierungsfunktion in einem von ihnen verwenden, um Typen übereinstimmen.

Sie haben versucht, eine SELECT-Anweisung (wahrscheinlich eine UNION oder UNION ALL), und alle Abfragen auszuführen enthalten keine Datentypen in den Ergebnisspalten entsprechen.

Techonthenet - ORA-01790

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top