Announcement

Collapse
No announcement yet.

Int64 wird bei Union zu Decimal

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Int64 wird bei Union zu Decimal

    Ich habe ein Problem immer wieder:

    Wenn ich eine Datenbankabfrage mache, werden Felder mit Datentyp number automatisch als Int64 interpretiert (kürzere number-Felder als Int32). Da das durchgängig so ist, absolut kein Problem.
    Wenn ich jetzt aber in einer Abfrage noch eine "Leerzeile" dran hängen will, wird der Typ der Spalte in meinem Programm automatisch als Decimal interpretiert - und bei der nächsten Data Relation knallts weil die Datentypen nicht verträglich sind.

    Beispielabfrage:
    SELECT BEREICH, KST_NR, BEZEICHNUNG FROM KOSTENSTELLE
    UNION select distinct BEREICH, CAST(0 AS INT), ' ' FROM KOSTENSTELLE
    ORDER BY BEZEICHNUNG ASC;

    Egal ob ich null, 0, to_number(0), CAST(0 AS INT), CAST(0 AS INTEGER) abrufe, immer wird es als Decimal interpretiert. Ich will aber dass die Spalte weiterhin als Int64 interpretiert wird! Wie mache ich das?

  • #2
    Ich würde mal vermuten das der Typ anhand des ersten Union Zweigs ermittelt wird. Was ist wenn du dort mal explizit castest (auch wenn es überflüssig aussieht) ?

    Comment


    • #3
      CAST(0 AS number(spaltenbreite)) in der ersten Zeile hatte den gewünschten Effekt! Danke
      Zuletzt editiert von CLL; 20.02.2012, 10:01.

      Comment

      Working...
      X