spezibua

SQL View Erstellung

Hallo Administrator Support,

ich habe mir ein SQL-Statement für eine Lagerverwaltung erstellt. Dieses SQL Statement funktioniert auch wunderbar. Nur wenn ich mir aus dem SQL-Statement eine view mit create view xx as und danach den code von unten erzeugen möchte. Bekomme ich den Fehler ORA-00998 Dieser Ausdruck braucht einen Spalten Alias. Leider bekomme ich nicht die Info welche Zeile es genau ist...
Vl. hatte jemand bereits so etwas ähnliches. Für jede Hilfe bin ich dankbar face-wink

create view xx as
select rownum as sorter,  myview.* from (
select *
from
    (select
      ftree.connect_by_root_kc  as BASIS_RUECKMELDE_NR,
      pfsp.RUECKMELDE_NR
     ,pfsp.RUECKMELDE_POSITIONS_NR
     ,pfsp.KOMPONENTEN_ARTIKEL_NR as ARTIKEL_NR
     ,pfsp.ENTNAHME_MENGE
    from cprec_pfak_tree ftree 
    inner join pfsp on pfsp.rueckmelde_nr = ftree.rueckmelde_nr_kc
    where (ftree.basis_rueckmelde_nr_kc = ftree.connect_by_root_kc or ftree.basis_rueckmelde_nr_kc = 0)
    --and ftree.connect_by_root_kc = 30059276
    ) stueckliste
 left join
    (select 
     lagerort
     ,artikel_nr as ARTIKEL_NR
     ,chargen_serien_nr     
     ,null as lagerbereich
     ,null as koordinate_1
     ,null as koordinate_2
     ,null as koordinate_3
     ,null as koordinate_4
     ,'20991231' as letzter_zugang  
     ,menge_1 as bestandsmenge
    from pmlb
    where lagerort = '11002' or lagerort = '11003'  
    
    union
    
    select
      lpbe.lagerort
     ,lpbe.artikel_nr as ARTIKEL_NR
     ,lpbe.chargen_serien_nr
     ,lpbe.lagerbereich
     ,lpbe.koordinate_1
     ,lpbe.koordinate_2
     ,lpbe.koordinate_3
     ,lpbe.koordinate_4
     ,lpbe.letzter_zugang
     ,lpbe.bestandsmenge as bestandsmenge
    from lpbe
    where lpbe.lagerort = '11000'  
    ) lagerplaetze
    
on stueckliste.artikel_nr = lagerplaetze.artikel_nr
--and lagerplaetze.bestandsmenge >= stueckliste.entnahme_menge

order by
  stueckliste.BASIS_RUECKMELDE_NR,
  lagerplaetze.lagerort asc
 ,lagerplaetze.lagerbereich
 ,lagerplaetze.koordinate_1
 ,lagerplaetze.koordinate_2
 ,lagerplaetze.koordinate_3
 ,lagerplaetze.koordinate_4
 ,stueckliste.RUECKMELDE_NR
 ,stueckliste.RUECKMELDE_POSITIONS_NR ) myview
 

 
 ;
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 5922479461

Url: https://administrator.de/forum/sql-view-erstellung-5922479461.html

Ausgedruckt am: 15.06.2025 um 15:06 Uhr

ukulele-7
Lösung ukulele-7 09.02.2023 aktualisiert um 15:40:53 Uhr
Goto Top
Du solltest generell in produktivem Code niemals mit * als Spaltenplatzhalter arbeiten, dann hättest du das Problem jetzt übrigens auch nicht face-wink

Ich bin nicht mit Oracle vertraut aber ich vermute das es in dem ganzen Wirwarr von Spalten und SELECT * FROM SELECT * Spaltennamen doppelt gibt. Das funktioniert in der Ausgabe vom SQL Client eventuell aber eine View braucht immer auch einen eindeutigen Namen für jede Spalte.

PS: Achja ORDER BY ist in Views auch nicht zulässig, wozu auch.
Pjordorf
Pjordorf 09.02.2023 um 16:12:37 Uhr
Goto Top
Zitat von @spezibua:
Bekomme ich den Fehler ORA-00998 Dieser Ausdruck braucht einen Spalten Alias. Leider bekomme ich nicht die Info welche Zeile es genau ist...
Oracle Datenbank?
Version?
Vielleicht hilft mal zu lesen https://www.morganslibrary.org/reference/views.html

Gruß,
Peter
spezibua
spezibua 09.02.2023 um 16:33:33 Uhr
Goto Top
Sorry das hab ich vergessen. Es ist eine Oracle 12c Standard Edition Release 12.1.0.2.0 - 64 bit.
Liebe Grüße