Announcement

Collapse
No announcement yet.

Procedure oder Funktion die eine Tabelle zurück gibt

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

  • Procedure oder Funktion die eine Tabelle zurück gibt

    Ich möchte ein

    SELECT *
    FROM table2

    als eine Funktion oder Procedure verpacken. Ich habe schon gegoogled und als Hinweis gefunden, dass dies nur über eine Cursor realisiert werden kann.

    create or replace function test_cursor
    return sys_refcursor
    is
    c_result sys_refcursor;
    begin
    open c_result for
    SELECT *
    FROM table2
    return c_result;
    end;

    Das funktioniert aber auch nicht.

    Der Hintergrund ist, dass ich von PHP aus gezielter Abfragen an die OracleDB schicken möchte. Das heißt, das Resultset soll eine Tabelle sein. Ich möchte aber den SQL-Code nicht mit in PHP-Code einfügen, sondern jegendlich nur die Procedure/Function ändern, weil der PHP-Code nicht mehr geändert werden soll, auch wenn ich Veränderungen an der DB vornehme.

    Hat denn jemand einen Ahnung warum meine Funktion nicht funktioniert. Ist vielleicht mein Ansatz (SQL) total falsch.
    Wäre dankbar, wenn jemand einen Tipp für mich hätte. Verzweifle schon langsam

  • #2
    Ein bißchen formatiert fällt der Sytax-Fehler doch sofort auf, oder ?
    So sollte es gehen:
    Code:
    CREATE OR REPLACE FUNCTION test_cursor
      RETURN SYS_REFCURSOR AS
      c_result   SYS_REFCURSOR;
    BEGIN
      OPEN c_result FOR SELECT * FROM test;
      RETURN c_result;
    END;

    Comment

    Working...
    X