Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo!

Ich bin ein absoluter Newbie in PL/SQL und hänge schon bei jeder Kleningkeit fest.

Ist bestimmt alles für euch ein Klacks (hoffe ich) :)

Also:

Ich habe folgende PL/SQL Anweisung:

IF Vorname<>"" AND Nachname<>"" THEN

SELECT ID

INTO numPersonID

FROM adr_person

WHERE FirstName=Vorname AND LastName=Nachname;

ELSIF Vorname ="" THEN

SELECT ID

INTO numPersonID

FROM adr_person

WHERE LastName=Nachname;

ELSIF Nachname = "" THEN

SELECT ID

INTO numPersonID

FROM adr_person

WHERE FirstName=Vorname;

END IF;

In der Fett markierten Zeile hält der Compiler an und sagt, dass mein Befehl nicht korrekt beendet wurde... Fehlt da irgendwo ein Semikolon??? Laut meinem Buch hier neben mir stimmt das irgendwie... Oder ich steh auf dem Schlauch...

Ausserdem bekomme ich folgende Fehlermeldung:

ORA-00604: error occured ar recursive SQL Level 1

ORA-01400: cannot insert NULL into ("SYS". "OBJ$", "Name")

Was will der von mir??? Ich will doch nichts Inserten...

:confused: :confused: :confused:

Und da ich gerad dabei bin (:D): Wie frage ich nach einem Leeren Feld in Oracle ab???

Also ich hab mal einen Vornamen gesichert und mal keinen.

(Daher auch dieses IF-Konstrukt).

Mit einem einfachen Where FirstName="" oder einem FirstName=NULL geht es nicht.

Die IF Anweisung bekommt aus einem Programm den Namen geliefert (also auch "leere" Namen)... Wieso reicht das Erste Statement

SELECT ID

INTO numPersonID

FROM adr_person

WHERE FirstName=Vorname AND LastName=Nachname;

nicht?

Wenn ich z.B. keinen Vornamen habe und diese Abfrage ausführe, bekomme ich kein Ergebnis...

Fragen über Fragen, die mich alle verwirren, da es damals unter Access ging... :confused:

Geschrieben

Hi,

das sind ja erstmal eine Menge Fragen :)

So spontan kann ich dir nur das beantworten :

Wie frage ich nach einem Leeren Feld in Oracle ab

Null fragt man ab

feldname is null

Beim Rest bin ich auch erstmal ratlos aber ich denke mal weiter drüber nach

Gruß

Geschrieben

Hey super, danke!

Das mit dem IS NULL versuche ich direkt mal!

Das mit dem ELSE-Abbruch habe ich jetzt vor 2min herausgefunden:

*An den Kopf schlag*

Man darf keine " setzen, sondern man muss ' setzen... :rolleyes:

Hab ich aber auch nur durch ausprobieren gefunden...

Nachtrag: Das mit mit IS NULL funktioniert! Super!

Geschrieben
Original geschrieben von Ganymed

  IF Vorname<>"" AND Nachname<>"" THEN 

     SELECT ID 

     INTO numPersonID

     FROM adr_person

     WHERE FirstName=Vorname AND LastName=Nachname;

  [B]ELSIF Vorname ="" THEN[/b]

     SELECT ID 

     INTO numPersonID

     FROM adr_person

     WHERE LastName=Nachname;

  ELSIF Nachname = "" THEN

     SELECT ID 

     INTO numPersonID

     FROM adr_person

     WHERE FirstName=Vorname;

  END IF; 

  

ORA-00604: error occured ar recursive SQL Level 1

ORA-01400: cannot insert NULL into ("SYS". "OBJ$", "Name")

Was will der von mir??? Ich will doch nichts Inserten...

:confused: :confused: :confused:

Also,

erstmal würde ich anstatt der "" '' nehmen (single Quotes). Außerdem fragst du nach leer oder nach null ab ?? wenn du nach Null fragst, benutze "is null"

edit: Ich liebe Probleme, die sich von selbst lösen ;)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...