Parameter? Wie kann ich eine Parameterabfrage machen in oracle sql?

Xaloo

Benutzer
Beiträge
7
Ich muss eine Abfrage mit Parametern machen in sql, ich hab auch schon im Internet geschaut aber ich muss sagen ich verstehe das nicht ganz wie die das dort erklären wäre nett wenn mir jemand helfen kann?:)

Mfg
Xaloo
 
Werbung:
Wie man Parameter spezifiziert hängt stark von der Programmiersprache ab, die Du verwendest.
In Java würde man das so machen:

Code:
Connect con = ...;
PreparedStatement pstmt = con.prepareStatement("select id, first_name, last_name from person where id = ?");
pstmt.setInt(1, 42);
ResultSet rs = pstmt.executeQuery();
while (rs.next() {
  ....
}

Der "Knackpunkt" ist letztendlich keinen tatsächlichen Wert für den Parameter in das SQL zu schreiben, sondern einen Platzhalter. In Java ist das ein ? in anderen Programmiersprachen, wird auch $1, $2 usw verwendet, es gibt aber auch Sprachen die :1, :2 verwenden
 
So aus der Hüfte denke ich, er meint einfach nur eine Where-Abfrage, wobei man den gewollten Parameter im Where einsetzt.

Beispiel (PGSQL verwendet):

Code:
create table bla(name text);

Code:
insert into bla(name) values ( 'Kampfgummibaerlie');

Code:
select name from bla where name = 'Kampfgummibaerlie';

Wobei 'Kampfgummibaerlie' der gewollte Parameter ist.

Wenn eine Funktion mit Parametern gemeint ist:

Code:
create function getname(x text) returns text as $$ select name from bla where name = x $$ language sql;

Code:
select * from getname('Kampfgummibaerlie');

Kann man natürlich bei weitem mehr ausbauen, aber ich habe mal die Basis geschrieben.

EDIT: Soweit ich weiß, ist das mit Parametern nicht definiert von der Programmiersprache, sondern vom entsprechenden Programm, sprich Access, oder was auch immer.

Ich kann mich noch erinnern, bei OpenOffice musste man den gewollten Parameternamen nach einem Doppelpunkt schreiben, bei Access wiederum in eckige Klammern, soweit ich weiß.
 
Zuletzt bearbeitet:
Werbung:
EDIT: Soweit ich weiß, ist das mit Parametern nicht definiert von der Programmiersprache, sondern vom entsprechenden Programm, sprich Access, oder was auch immer.
Ja und nein ;)
In MS Access ist es die Programmiersprache Visual Basic, die diese Regel festlegt.

Aber wenn ein Programm (z.B. ein Reportgenerator) Platzhalter bei der Ausführung der Abfragen unterstützt, dann stimmt die Aussage natürlich.

Es hängt komplett von der "Umgebung" ab in der eine Abfrage ausgeführt wird.
 
Zurück
Oben