Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Was sind stored procedures?

  Alt 29. Jan 2005, 20:06
und damit der Luckie auch mal einen kleinen, abstrakten Bleistift zu Gesicht bekommt.
SQL-Code:
create procedure SomeProcedure(aSomeValue in integer) is
  /* eine Konstante */
  Tab constant char(1) := Chr(9);

  /* Ein cursor, der einen Parameter nimmt und mit diesem Daten abfragt */
  cursor SelectSomething(iParameter in integer) is
    SELECT *
    FROM XYZ
    WHERE SomeColumn = iParameter;

  /* ein Collection typ, bei der ein Element dem Typen einer Zeile des Cursors (und damit der Abfrage) entspricht */
  type TSomeCollection is table of SelectSomething%RowType;

  /* eine Variable dieser collection */
  SomeCollection TSomeCollection;

  /* ein Record mit Defninition siehe Collection ELement */
  SomeRecord SelectSomething%RowType;
begin

  /* cursor öffnen und Abfrage vorbereiten */
  open SelectSomething(aSomeValue);

  /* Inhalt der Abfrage in die Collection schieben */
  fetch SelectSomething
    bulk collect
    into SomeCollection;

  /* Abfrage schließen */
  close SelectSomething;

  /* durch die Ergebnisse laufen (wenn es Datensätze gibt)*/
  if SomeCollection.Count > 0 then
    for i in SomeCollection.First .. SomeCollection.Last loop
      /* aktuelles Element in den Record kopieren */
      SomeRecord := SomeCollection(i);
      /* in die Kommandozeile ausgeben */
      DBMS_Output.Put_Line((i + 1) || Tab || SomeRecord.Column1 || Tab || SomeRecord.Column2);
    end loop;
  end if;
end;
Das Ganze war jetzt PL/SQL. Meiner Meinung nach sieht es aus wie ein Kreuzung zwischen C, Pascal und SQL.
Jede DB bringt ihre eigene Sprache mit. (MS SQL Server: T-SQL, InterBase/FireBird: PSQL, mySQL: nix ) Und alle sind komplett anders.

Edit: Tippfähler...
  Mit Zitat antworten Zitat