Announcement

Collapse
No announcement yet.

Execute Procedure in WHERE Klausel

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

  • Execute Procedure in WHERE Klausel

    Hallo,

    ich habe folgendes Statement:

    Code:
            INSERT INTO temp_standort
                SELECT s.NAME
                    FROM standort s, plaetze p
                        WHERE s.inc=0 AND
                              p.name=:name AND
                              s.websichtbar=1 AND
                              s.standort BETWEEN p.nummernkreisvon AND p.nummernkreisbis AND
                              'execute procedure order_helper_trailer (s.standort) RETURNING_VALUES RESULT;'=1;
    Problem ist scheinbar, dass der Aufruf der Prozedur nicht so ganz korrekt ist. Also die Prozedur ansich ist ok, die wurde bereits auf Herz und Nieren getestet. Aber wenn ich, wie in dem Fall oben auf 1 prüfe, dann scheint es immer ungleich 1 zu sein. Die Prozedur gibt außerdem nur ZWEI Werte zurück. Die wären 0 oder 1. Aber selbst wenn ich auf 0 prüfe scheint das Ergebnis negativ zu sein. Nun befürchte ich, dass ich falsch auf den return value abfrage.. Hat da jemand einen Vorschlag?

  • #2
    Versuch es mal mit einem einfachen select auf die Prozedur

    Comment


    • #3
      Wundert mich, dass du damit
      Code:
       ... and  'execute procedure order_helper_trailer (s.standort) RETURNING_VALUES RESULT;'=1
      überhaupt ein Ergebnis bekommst, eigentlich müsste ein Fehlermeldung kommen.
      Du führst keine Procedure aus, sondern vergleichst ein String mit einem Integer.

      versuch es mal damit
      Code:
      INSERT INTO temp_standort
        SELECT s.NAME
          FROM
            standort s,
            plaetze p
         WHERE
            s.inc=0 AND
            p.name=:name AND
            s.websichtbar=1 AND
            s.standort BETWEEN p.nummernkreisvon AND p.nummernkreisbis AND
           (select RESULT from order_helper_trailer (s.standort)) = 1
      alex

      Comment


      • #4
        Jop, also das mit dem Stzringvergleich ist wohl wahr. Das hatte ich vorher auch mal rausgenommen. Dann ließ sich das aber nicht kompilieren da er die Anweisung "EXECUTE" nicht mehr kannte.

        Aber deine Lösung hat sehr gut funktioniert.

        Besten Dank;-)

        Comment

        Working...
        X