Announcement

Collapse
No announcement yet.

procedure

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • procedure

    Hallo,
    weiß jemanden vielleicht wie man in Oracle eine procedure aufruft, die ein select statment enthält?
    Also das ist die Implementierung von der Procedure:
    create or replace procedure "CALL2"
    (nr OUT NUMBER,
    nam OUT VARCHAR2)
    is
    begin
    select tel,
    name
    into nr,
    nam
    from t1;
    end;

    beim Aufrufen hab ich verschiedenes probiert, wie zum Beispiel:
    begin
    CALL2();
    end;
    aber es klappt einfach nicht

    Gruß

  • #2
    öhm was sollte denn Deiner Meinung nach passieren? Wenn Du in PL/SQL ein SQL Kommando aufrufst, dann wird das ausgeführt, allerdings führt das zu keiner Ausgabe. Ausserdem hat diese Funktion 2 OUT Parameter die Du ihr übergeben musst. In diese werden die Werte dann geschrieben und Du kannst sie im aufrufenden Teil benutzen.
    Allerdings kann ich mir auch hier wieder nicht vorstellen dass das funktioniert, weil NUMBER und VARCHAR2 sind einzelne Werte und die Abfrage sieht nicht so aus als würde sie nur einen Wert zurückgeben.

    Vielleicht etwa so:

    Code:
    CREATE OR REPLACE PROCEDURE "CALL2" 
      (Id NUMBER,
       nr OUT NUMBER, 
       nam OUT VARCHAR2) 
    IS 
    BEGIN 
      SELECT tel, name 
      INTO nr,   nam 
      FROM t1 
      WHERE t1.t1Id = t1Id
    END;
    
    
    DECLARE
      name VARCHAR2(200);
      nr NUMBER;
      t1Id NUMBER;
    BEGIN
      t1Id := 1;
    
      CALL2(t1Id,nr, name); 
      dbms_output.put_line('Id: ' || TO_CHAR(t1Id));
      dbms_output.put_line('Nr: ' || TO_CHAR(nr));
      dbms_output.put_line('Name: ' || name);
    END;
    Zuletzt editiert von fanderlf; 16.09.2009, 07:37.

    Comment


    • #3
      Ich habe die Ausgangsparameter nicht deklariert, das hat gefehlt, es hat funktioniert :-) vielen dank

      Comment

      Working...
      X