zu viele werte für variable

Dieses Thema zu viele werte für variable im Forum "Windows XP Forum" wurde erstellt von ofna, 25. Nov. 2005.

Thema: zu viele werte für variable hallo an alle! mein bisheriges programm hat super funktioniert.......es hat eine id ausgelesen (und zwar genau...

  1. hallo an alle!

    mein bisheriges programm hat super funktioniert.......es hat eine id ausgelesen (und zwar genau die, die ich ihm mit dem übergabeparameter &1 übergeben habe)  und diese in die variable d gespeichert! diese variable konnte ich dann weiter unten in meiner nächsten select abfrage nutzen.....und fertig war die lösung............
    zu diesem zeitpunkt gab es allerdings immer nur eine id für jeden namen, den ich übergeben habe!!!
    z.b. 

    FGG Lastprofil - 608088781
    FGG Verrechnungsdaten - 608070551
    usw

    was jetzt umgebaut wurde ist:

    Lastprofil Zaeler - 60605050
    Lastpfofil FGG    - 60443033

    das heißt wenn ich z.b Lastprofil% übergebe würde ich mehrere id's bekommen.........--> dann bekomme ich die fehlermeldung:
    exact fetch returns more than requested number of rows
    also funktioniert mein script so nicht mehr!!

    es SOLLTE allerdings MÖGLICH SEIN beide id's zu speichern und weiter unten in der Abfrage diese dann auch beide verwenden zu können sodass ich in meiner zweiten abfrage auch 2 ergebnisse bekomme!!!!

    wie kann ich mein programm abändern, das ich das hinbekomme?????

    ---------------------------------------------------------------------------
    Code:
    variable d char(255)
    
    begin
    select id into :d from action_mode where name like->&1%';
    end;
    /
    
    select to_char(sysdate,'MMDDhhmiss') ||';'|| substr(to_char(id),8,2) ||';'||';'||';'||'1;'||';'||';' from action_mode where id = :d;
    
    spool off
    exit
    
     
  2. Hallo Ofna,
    da brauchte man ein Array, um das Ergebnis der ersten Abfrage zu speichern, aber ich habe nicht gefunden, dass es so etwas unter PL/SQL gibt. Am einfachsten wäre es, das Ergebnis in einer temporären Tabelle zu speichern:
    Code:
    delete from tempid;
    insert into tempid values (select id from action_mode where name like->&1%'); 
    und hinterher mit der IN-Klausel auszuwerten, wie Du es früher schon getan hast:
    Code:
    select to_char(sysdate,'MMDDhhmiss') ||';'|| substr(to_char(id),8,2) ||';'||';'||';'||'1;'||';'||';' from action_mode where id in (select id from tempid);
    Wahrscheinlich kann man beide Queries sogar zu einer zusammenfasse:
    Code:
    select to_char(sysdate,'MMDDhhmiss') ||';'|| substr(to_char(id),8,2) ||';'||';'||';'||'1;'||';'||';' from action_mode
     where id in (select id from action_mode where name like->&1%'));
    ... oder warum nicht ganz einfach:
    Code:
    select to_char(sysdate,'MMDDhhmiss') ||';'|| substr(to_char(id),8,2) ||';'||';'||';'||'1;'||';'||';' from action_mode
     where name like->&1%';
    Viele Grüße - Ulrich
     
Die Seite wird geladen...

zu viele werte für variable - Ähnliche Themen

Forum Datum
Notebook - viele verschiedene Blue Screens Software: Empfehlungen, Gesuche & Problemlösungen 6. Dez. 2014
Tuning-Maßnahmen, zuviele Dateien Firewalls & Virenscanner 19. Nov. 2014
Neu auf Windows 8 und viele Fragen... Windows 8 Forum 10. Sep. 2014
Bilder automatisch aus vielen Ordnern in einen Ordner verschieben Windows 7 Forum 23. Juli 2014
Zu viele offene Verbindungen im Netzwerk??? Netzwerk 2. Mai 2014