Verwenden eines gespeicherten Verfahrens
Eine gespeicherte Prozedur ist eine Unterroutine, die für Anwendungen zur Verfügung steht, die auf ein relationales Datenbanksystem zugreifen. Wenn Sie eine Verbindung zu einer SAP Sybase ASE-, Microsoft SQL Server- oder Teradata-Datenbank mit Tableau herstellen, können Sie mit einer gespeicherten Prozedur die Verbindung definieren.
Bei Oracle können Sie die Verbindung mit einer Tabellenfunktion definieren. Oracle-Tabellenfunktionen agieren ähnlich wie die gespeicherten Prozeduren und sind unter Gespeicherte Prozeduren auf der Seite "Datenquelle" ausgelistet.
Wenn Sie eine Datenquelle anhand eines dieser Datentypen erstellen, werden die verfügbaren Prozeduren unter Gespeicherte Prozeduren aufgelistet, wie im Beispiel mit dem Microsoft SQL Server gezeigt.
Ziehen Sie die Prozedur vom linken Bereich in den Arbeitsbereich oder doppelklicken Sie auf eine der aufgelisteten Prozeduren. Wenn in der Prozedur Parameter zur Verfügung stehen, wird automatisch das Dialogfeld "Parameter" angezeigt.
Anstatt einen Wert einzugeben, können Sie einen vorhandenen Tableau-Parameter verwenden oder einen neuen Tableau-Parameter für den Wert eingeben:
Wenn Sie dann den Tableau-Parameter in der Ansicht anzeigen, können Benutzer den Wert des Parameters in der Prozedur interaktiv ändern.
Verbindungen, Beziehungen oder Verknüpfungen werden von gespeicherten Prozeduren nicht unterstützt. Sie werden in einer einzelnen logischen Tabelle auf der logischen Ebene dargestellt und erlauben nicht das Öffnen des Verknüpfungsbereichs "Verknüpfen/Vereinigung" (physische Ebene).
Hinweise zu gespeicherten Prozeduren
Beachten Sie bei der Verwendung von gespeicherten Prozeduren zum Definieren einer Datenquelle für Tableau Folgendes:
Wenn eine gespeicherte Prozedur mehr als einen Ergebnissatz zurückgibt, liest Tableau den ersten und ignoriert die übrigen.
Wenn eine gespeicherte Prozedur über Ausgabeparameter verfügt, filtert Tableau die gespeicherte Prozedur heraus.
Gespeicherte Verfahren, die nicht-skalare Parameter aufweisen, werden nicht verarbeitet.
Ergebnismengenspalten ohne Entsprechung in Tableau (wie z. B. "varbinary", "geometry" und "hierarchyid") werden protokolliert. Wenn alle Ergebnissatzspalten unbekannten Datentypen zugeordnet sind, zeigt Tableau eine Meldung an:
"Die Ergebnismenge ... weist keine verwertbaren Spalten auf."
Gespeicherte Prozeduren, für die keine Ergebnissätze zurückgegeben werden, werden auf der Datenquellenseite aufgeführt, führen jedoch zu einem Fehler, wenn sie ausgewählt werden.
Wenn für einen Parameter kein Wert angegeben ist, der eigentlich für das gespeicherte Verfahren notwendig ist, entsteht ein Fehler. Tableau kann nicht im Voraus ermitteln, ob bestimmte Parameter erforderlich sind.
Tableau führt kein Transaktionsmanagement für gespeicherte Prozeduren durch. Das heißt, dass sich Ersteller von Prozeduren nicht darauf verlassen können, dass Tableau Transaktionen startet, bevor gespeicherte Prozeduren aufgerufen werden, oder dass sie anschließend übergeben werden.
Spaltennamen müssen eindeutig sein, damit Prozeduren funktionieren. Wenn zwei Spalten denselben Namen haben oder wenn kein Name angegeben wurde, kann die Prozedur zu einem Fehler führen.
Wenn eine gespeicherte Prozedur mehrere Abfragen enthält (z. B. zum Lesen von Werten aus anderen Tabellen oder zum Aufnehmen temporärer Kombinationen), muss jede Abfrage dieselben Sätze von Spalten in derselben Reihenfolge zurückgeben (dieselben Namen und Datentypen). Um sicherzustellen, dass Reihenfolge und Namen der Spalten im Abfrageergebnissen übereinstimmen, müssen Sie möglicherweise explizit
CAST
verwenden, um die Korrektheit des Datentyps sicherzustellen, zum BeispielCAST(Username as VARCHAR(20))
, und die Spalten explizit benennen. Wenn eine gespeicherte Prozedur nicht diesen Richtlinien entspricht, kann dies zu einer Fehlermeldung führen:"InsertData: Fehler durch ungebundene Spalte"
Wenn in einer gespeicherten Prozedur mehrere Abfragen enthalten sind (z. B. zum Lesen von Werten aus anderen Tabellen oder zum Aufnehmen von temporären Kombinationen) und die Prozedur einen Fehler generiert, versuchen Sie am Anfang der Prozedur
SET NOCOUNT ON
einzufügen. Dadurch wird verhindert, dass die Meldung, die die Anzahl der von einer Transact-SQL-Anweisung betroffenen Zeilen angibt, nicht als Teil des Ergebnissatzes der Abfrage zurückgegeben wird.
Darüber hinaus gelten für bestimmte Datenbanken die folgenden Beschränkungen.
Beschränkungen für gespeicherte Verfahren bei Teradata-Datenbanken
Die folgenden Beschränkungen gelten für gespeicherte Verfahren bei Teradata-Datenbanken.
Für jeden Parameter müssen Werte vorhanden sein. Wenn der Benutzer für einen oder mehrere Parameter keinen Wert angibt, zeigt Tableau einen Teradata-Datenbankfehler an und weist darauf hin, dass für das gespeicherte Verfahren nicht genügend Werte vorliegen.
Beschränkungen für gespeicherte Verfahren bei SQL Server-Datenbanken
Die folgenden Beschränkungen gelten für gespeicherte Verfahren bei SQL Server-Datenbanken.
Wenn die Ergebnismenge für ein gespeichertes Verfahren Spalten der Art "IMAGE" oder "TEXT" enthält, entsteht für das gespeicherte Verfahren ein Fehler mit der Fehlermeldung "Falsche Syntax".
Wenn die Gesamtbreite der Ergebnismenge (Anzahl der Bytes in jeder Zeile) größer als 8060 ist, führt das gespeicherte Verfahren zu einem Fehler. Dies geschieht bei sehr breiten Tabellen (Hunderte von Spalten) oder bei Tabellen mit umfangreichen Textspalten, die dazu vorgesehen sind, Texte mit Tausenden von Zeichen zu enthalten.
Tableau zeigt gespeicherte Verfahren des Schemas "sys" nicht an..
Wenn der Benutzer für einen oder mehrere Parameter keinen Wert angibt, der eigentlich für das Verfahren notwendig ist, zeigt Tableau einen SQL Server-Datenbankfehler der folgenden Art an: "Für das Verfahren ist ein Wert für Parameter @x erforderlich, dieser Wert ist jedoch nicht vorhanden."
Gespeicherte Prozeduren, die mehrere Abfragen enthalten, müssen den unter "Hinweise zu gespeicherten Prozeduren" (oben) aufgeführten Richtlinien entsprechen.
Tableau Desktop unterstützt nicht den Datentyp Microsoft SQL Server TIME. Wenn Felder dieses Typs in einer gespeicherten Prozedur in einer Microsoft SQL Server-Datenbank enthalten sind, wird Tableau Desktop sie nicht importieren.
Beschränkungen für gespeicherte Verfahren bei SAP Sybase ASE-Datenbanken
Die folgenden Beschränkungen gelten für gespeicherte Verfahren bei SAP Sybase ASE-Datenbanken (nur Windows).
Die Datenbank muss einen korrekt konfigurierten Remoteserver aufweisen.
Wenn der Benutzer für einen oder mehrere Parameter keinen Wert angibt, der eigentlich für das Verfahren notwendig ist, zeigt Tableau einen Sybase ASE-Datenbankfehler der folgenden Art an: "Für das Verfahren ist ein Wert für Parameter @x erforderlich, dieser Wert ist jedoch nicht vorhanden."