Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

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

Dieses Thema im Forum "Oracle" wurde erstellt von Xaloo, 3 Juni 2020.

  1. Xaloo

    Xaloo Benutzer

    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
     
  2. Monarch

    Monarch Benutzer

    Was soll die Abfrage denn zurück geben?

    Monarch
     
  3. castorp

    castorp Datenbank-Guru

    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
     
  4. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    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: 4 Juni 2020
  5. castorp

    castorp Datenbank-Guru

    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.
     
    akretschmer gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden