Einfaches "SELECT" mit Variable aber ohne "INTO"

8

Ich habe verschiedene SELECT-Abfragen mit denselben Werten. Ich möchte etwas wie DECLARE verwenden, aber wenn ich ein einfaches DECLARE schreibe sagt es, dass "INTO" erwartet wird.

Wenn ich nur ein "SELECT" möchte, wie kann ich dieses Formular ohne "INTO" verwenden?

Einfach habe ich zwei (oder mehr) selects:

%Vor%

und

%Vor%

Nun möchte ich eine Variable wie var_col1 und var_col2 deklarieren und sie in beiden Select-Abfragen gleichzeitig verwenden.

Ich dachte, das würde funktionieren:

%Vor%

Aber keine Chance ... Wie geht das ohne eine Prozedur oder Funktion?

    
Yasin Okumuş 23.02.2012, 16:07
quelle

3 Antworten

6

Wenn Sie select * from some_table; in SQL * Plus schreiben, fungiert SQL*Plus als Client-Programm und erledigt viel Arbeit für Sie unter dem Schutz der Daten, die von der Datenbank zurückgegeben werden, indem Sie sie formatieren und es anzeigen.

Sobald Sie DECLARE eingeben, beginnen Sie einen PL / SQL-Block. Jetzt rufen Sie PL / SQL und PL / SQL ruft SQL auf. Daher müssen Sie in PL / SQL entscheiden, wie mit den Daten umzugehen ist, die von SQL zurückgegeben werden. Die Art, dies zu tun, ist über eine INTO -Klausel und eine Variable, um die Ausgabe zu erhalten. Unter Berücksichtigung, wo würden die Ausgabedaten von SELECT gehen, wenn Sie keine INTO -Klausel angeben? Irgendwo muss es hingehen, oder?

Hoffe, das ist klar.

    
Mark J. Bobak 23.02.2012, 16:15
quelle
2

Sie müssen in Ihre deklarierten Variablen auswählen, wenn Sie es so machen wollen oder die Spalten setzen. Zum Beispiel:

%Vor%

ODER

%Vor%

EDIT: Ich sollte auch hinzufügen, dass Sie auch Ausgabe VVariablen deklarieren können, die Sie in SQL verwenden können, um die Ausgabe zurückzugeben, um beim Debuggen usw. zu helfen. So können Sie etwas tun wie:

%Vor%

Und in Ihrer BEGIN-Anweisung tun Sie etwas wie:

%Vor%

Welches gibt nützliche Informationen aus (abhängig davon, was Sie festgelegt haben).

    
northpole 23.02.2012 16:12
quelle
1

Sie verwenden PLSQL Developer, der eine Auswahl von verschiedenen Fenstertypen hat. Wenn ich mich richtig erinnere, ist das Befehlsfenster dasjenige, das ein SQL * Plus-Emulator ist. Das sollte so funktionieren:

%Vor%

Definieren Sie mit anderen Worten zwei Substitutionsvariablen, weisen Sie ihnen Werte zu und stellen Sie sie schließlich in allen Ihren Abfragen bereit.

    
APC 23.02.2012 17:49
quelle

Tags und Links