Announcement

Collapse
No announcement yet.

Fehler bei UPDATE

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

  • Fehler bei UPDATE

    Hallo Zusammen

    Ich stehe gerade etwas auf der Leitung und habe schon über eine Stunde mit googlen verbracht ohne eine Lösung gefunden zu haben. Dabei ist es bestimmt ziemlich simpel...

    Ich sollte in einer Spalte einer Tabelle bestimmte Werte durch einen anderen ersetzen. Soweit so einfach. Dazu habe ich folgende Query geschrieben:

    UPDATE klient
    SET code_3 = 20308
    WHERE code_3 =20264


    Doch wenn ich sie laufen lasse, erhalte ich folgenden Fehler:
    "Meldung 512, Ebene 16, Status 1, Prozedur updKLIENT, Zeile 3
    Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird."

    Was mache ich falsch, bzw. wie kann ich das richtig machen?

    Vielen vielen Dank schon mal für eure Hilfe!
    Zuletzt editiert von santiglaus; 09.12.2010, 12:12. Reason: Fehler im Text

  • #2
    Originally posted by santiglaus View Post
    Doch wenn ich sie laufen lasse, erhalte ich folgenden Fehler:
    "Meldung 512, Ebene 16, Status 1, Prozedur updKLIENT_VORM_FUER, Zeile 24
    Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird."

    Was mache ich falsch, bzw. wie kann ich das richtig machen?
    Auf die Fehlermeldung hören und in Zeile 24 in Prozedur updKLIENT_VORM_FUER die Unterabfrage nur einen Wert zurückgeben lassen....
    was sonst?

    Comment


    • #3
      Genau das ist mein Ziel

      Vielleicht habe ich mich unklar ausgedrückt:

      Ich habe eine Tabelle mit einer Spalte 'code_3'. In dieser Spalte gibt es ca. 10'000 Einträge. Darunter mehrere mit dem Wert '20264'. Diese, und nur diese, muss ich auf den Wert '20308' umschreiben. Das kann nicht so schwer sein, aber irgendwie habe ich heute keinen Erfolg...

      Comment


      • #4
        Was macht denn die Prozedur bzw der Trigger der das update verhindert?

        Comment


        • #5
          Ich verwende keine Prozedur oder einen Trigger...

          Comment


          • #6
            Hallo,

            einen Trigger kann man auch nicht explizit verwenden. Jedoch gibt es offenbar einen Update-Trigger auf der Tabelle, der die procedure updKLIENT aufruft. Diese produziert dann den besagten Fehler.

            Dein Statement ist völlig korrekt, aber der Trigger bzw. die Prozedur sind fehlerhaft.

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Vielen vielen Dank!!

              Das mit den Triggern wusste und kannte ich bisher nicht. Aber wenn ich den Trigger updKLIENT vor der Abfrage disable und nachher wieder enable funktioniert die Abfrage wie gewollt...

              Danke nochmals!

              Comment


              • #8
                Kann man herausfinden was für Trigger es gibt?

                Comment


                • #9
                  IMHO Ja!

                  Gruß Falk
                  Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                  Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                  Comment


                  • #10
                    select * from all_triggers where table_name ='TABELLE';

                    Gruß

                    Martin

                    Comment


                    • #11
                      Danke vielmals!

                      Comment

                      Working...
                      X