tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1437
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    wobeni wobeni ist offline Mitglied
    Registriert seit
    Jun 2008
    Beiträge
    14
    Hallo,

    wie kann man unter SQLPLUS eine select Ausgabe in eine
    Benutzervariable schreiben. Nachfolgend eine kurze Erläuterung der Aufgabenstellung:
    DEFINE zn = <Für die Definition der Variable "zn" soll ein select Kommando ausgeführt werden, welches eine Zahl zurück gibt>

    Anschliessend sollte die Variable "zn" z.B. in einem insert Kommando benutzt werden.
    insert into <table> VALUES ('Mustermann', 'Max', '&zn' );

    Vielen Dank
     

  2. #2
    planb2000 planb2000 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    133
    Hallo,

    Du möchtest dynamisch SQL statements zusammenbauen diskutiert in:
    http://www.tutorials.de/forum/relati...param_1-a.html
    oder auch
    http://www.tutorials.de/forum/relati...-abfragen.html
    viel spaß.

    Grüße
     

  3. #3
    wobeni wobeni ist offline Mitglied
    Registriert seit
    Jun 2008
    Beiträge
    14
    Hallo,

    komme damit leider nicht ganz klar. Hier nochmal etwa ausführlicher mein Anliegen.

    Vorhandene Tabelle:
    BEREICH FOLGE IDENTNR KNR THEMANR ZEILE ZEILNR
    10 1 12345 100 500 Beispieltext 1
    10 1 12345 100 500 Beispieltext-2 2
    .....


    In diese Tabelle sollen weitere Datensätze eingefügt werden. Allerdings sollte die
    Spalte "ZEILNR" entsprechend hochgezählt werden. In obigem Beispiel müsste der
    nächste Datensatz also folgendermaßen aussehen.

    BEREICH FOLGE IDENTNR KNR THEMANR ZEILE ZEILNR
    10 1 12345 100 500 Beispieltext-3 3

    Da ich im Vorfeld allerdings nicht weiß, wieviel Zeilen ( Spalte "ZEILNR" ) bereits in der Tabelle vorhanden sind, ermittle ich die Anzahl der vorhandenen Zeilen durch den folgenden select Befehl und möchte diese Ausgabe (Zahl) in eine Variable schreiben, welche dann in dem insert Befehl verwendet wird.

    Ermitteln der Zeilenanzahl +1
    Wie bekommt man die Ausgabe des folgenden selects in eine Variable geschrieben,
    welche ich in dem darauffolgenden INSERT verwenden kann
    Variable = select count(zeilnr)+1 from cthema where identnr = '12345' and themanr = '500';

    Mit dem folgenden INSERT Befehl ausführen:
    insert into cthema VALUES ( '10' , '1' , '12345', '100', '500', 'Beispieltext-2', '< Inhalt-der-Variable-von-select-ausgabe>' );


    Vielen Dank
     

  4. #4
    Avatar von Exceptionfault
    Exceptionfault Exceptionfault ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Neckarsulm
    Beiträge
    348
    Hiermit?

    Code sql:
    1
    2
    3
    
    INSERT INTO cthema VALUES ( '10' , '1' , '12345', '100', '500', 'Beispieltext-2', 
     (SELECT COUNT(zeilnr)+1 FROM cthema WHERE identnr = '12345' AND themanr = '500')
    );

    Aber Achtung, das ganze ist nicht wirklich sicher! Wenn zwei User gleichzeitig einen solchen Insert machen und beide noch nicht COMMITTED, dann sind hinterher zwei Zeilen mit der selben Zeilennummern in der Tabelle. Das ganze ist also nicht für multiuser ausgelegt und somit - aus der Sicht eines DBAs - falsch!
     
    liebe Grüße
    Exceptionfault (http://exceptionfault.de)

    Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008

Ähnliche Themen

  1. .txt einlesen und Variablen zuweisen
    Von manu123 im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 28.03.10, 14:30
  2. Textarea auslesen und Variablen zuweisen
    Von Sven4972 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 23.11.08, 13:43
  3. Variablen zuweisen
    Von Samy-Deluxe im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 17.01.07, 19:08
  4. Variablen aus Datei anderen Variablen zuweisen
    Von Flolei im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 24.11.04, 14:56
  5. variablen zuweisen klappt nicht
    Von can im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 08.02.04, 00:10