2016-01-13 7 views

Antwort

7

Von PostgreSQL's documentation:

  • TYPE liefert den Datentyp einer Variablen oder Tabellenspalte. Sie können damit Variablen deklarieren, die Datenbankwerte enthalten. Angenommen, Sie haben in Ihrer users Tabelle eine Spalte mit dem Namen user_id. Um eine Variable mit dem gleichen Datentyp wie users.user_id zu deklarieren, schreiben Sie: user_id users.user_id%TYPE;.

  • ROWTYPE: Eine Variable eines zusammengesetzten Typs wird als Zeilenvariable (oder Zeilentypvariable) bezeichnet. Eine solche Variable kann eine ganze Zeile eines SELECT oder FOR Abfrageergebnisses enthalten, solange der Spaltensatz dieser Abfrage dem deklarierten Typ der Variablen entspricht. Auf die einzelnen Felder des Zeilenwerts wird mit der üblichen Punktnotation zugegriffen, z. B. rowvar.field.

  • RECORD: Datensatzvariablen ähneln zeilenartigen Variablen, sie haben jedoch keine vordefinierte Struktur. Sie übernehmen die eigentliche Zeilenstruktur der Zeile, der sie bei einem SELECT oder FOR Befehl zugewiesen sind. Die Unterstruktur einer Datensatzvariablen kann sich bei jeder Zuweisung ändern. Eine Konsequenz davon ist, dass, bis eine Datensatzvariable zuerst zugewiesen wird, keine Unterstruktur vorhanden ist und jeder Versuch, auf ein Feld zuzugreifen, einen Laufzeitfehler verursacht.

Siehe den Link für ausführlichere Beispiele.