Kategorien:

Systemfunktionen (Informationen)

SYSTEM$REFERENCE

Gibt eine Referenz auf ein Objekt (Tabelle, Ansicht oder Funktion) zurück. Wenn Sie SQL-Aktionen auf einer Objektreferenz ausführen, werden die Aktionen mit der Rolle des Benutzers ausgeführt, der die Referenz erstellt hat.

Siehe auch:

SYSTEM$QUERY_REFERENCE

Syntax

SYSTEM$REFERENCE('<object_type>', '<object_identifier>',
  [ , <reference_scope> [ , '<privilege>' [ , '<privilege>' ... ] ] ] )
Copy

Argumente

Erforderlich

object_type

Typ des Objekts. Sie können einen der folgenden Werte angeben:

  • api_integration

  • database

  • external_table

  • function

  • materialized_view

  • pipe

  • procedure

  • schema

  • table

  • task

  • view

  • warehouse

object_identifier

Bezeichner für das Objekt. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen zu Bezeichnern finden Sie unter Anforderungen an Bezeichner.

Optional

reference_scope

Gibt den Geltungsbereich der Referenz an.

Bei CALL oder bei Weggelassen wird angegeben, dass die Referenz in dem Kontext gültig, in dem sie erstellt wurde. Siehe Angeben des Geltungsbereichs der Referenz.

SESSION gibt an, dass die Referenz für die Dauer der Sitzung gültig sein soll.

Bei PERSISTENT wird angegeben, dass der Verweis gültig sein soll, bis das Objekt gelöscht wird. Siehe persistente Referenzen.

Hinweis: Wenn Sie das privilege-Argument angeben müssen, ist auch das reference_scope-Argument erforderlich.

Gültige Werte:

  • CALL

  • SESSION

  • PERSISTENT

Standardwert: CALL

privilege

Zusätzliche Berechtigung die erforderlich ist, um eine SQL-Aktion auf dem Objekt auszuführen.

Angenommen, Sie übergeben den Verweis auf eine Tabelle an eine gespeicherte Prozedur, mit der Zeilen in diese Tabelle eingefügt werden. Geben Sie 'INSERT' an, um der gespeicherten Prozedur die Berechtigung INSERT für diese Tabelle zu erteilen.

Eine Liste der unterstützten Objekte und Berechtigungen finden Sie unter Supported object types and privileges for references.

Wenn Sie mehr als eine zusätzliche Berechtigung angeben möchten, übergeben Sie jeden Berechtigungsnamen als zusätzliches Argument an die Funktion. So erteilen Sie beispielsweise die Berechtigungen INSERT, UPDATE und TRUNCATE:

CALL myprocedure( SYSTEM$REFERENCE('TABLE', 'table_with_different_owner', 'SESSION', 'INSERT'. 'UPDATE', 'TRUNCATE'));
Copy

Beachten Sie, dass Sie OWNERSHIP oder ALL nicht als Berechtigungen angeben können.

Rückgabewerte

Eine serialisierte Zeichenfolgendarstellung der Referenz, die als Bezeichner verwendet werden kann.

Beispiele

Siehe Ein einfaches Beispiel.