Gibt zurück, ob die angegebene materialisierte Ansicht als Sofortansicht definiert werden kann.
sa_materialized_view_can_be_immediate( Ansichtsname , Eigentümername )
Ansichtsname Verwenden Sie diesen CHAR(128)-Parameter, um den Namen der materialisierten Ansicht anzugeben. Wenn Ansichtsname NULL ist, wird der Fehler Tabelle...nicht gefunden
zurückgegeben.
Eigentümername Verwenden Sie diesen CHAR(128)-Parameter, um den Eigentümer der materialisierten Ansicht anzugeben. Wenn Eigentümername NULL ist, wird der Fehler Tabelle...nicht gefunden
zurückgegeben.
Ob eine angegebene manuelle Ansicht in eine Sofortansicht geändert werden kann, unterliegt gewissen Einschränkungen. Verwenden Sie diese Systemprozedur, um festzulegen, ob diese Änderung zulässig ist. Eine Liste der zusätzlichen Einschränkungen für die Erstellung von Sofortansichten finden Sie unter Zusätzliche Einschränkungen für Sofortansichten.
Die sa_materialized_view_can_be_immediate-Systemprozedur gibt die folgenden Informationen für die angegebene materialisierte Ansicht zurück.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
SQLStateVal | CHAR(6) | Der zurückgegebene SQLSTATE. |
ErrorMessage | LONG VARCHAR | Die Fehlermeldung, die dem SQLSTATE entspricht. |
Jede Zeile in der Ergebnismenge entspricht einem bestimmten, für eine Ansicht zurückgegebenen SQLSTATE. Daher gilt: Wenn die Definition der materialisierten Ansicht mehr als eine Einschränkung verletzt, enthalten die Ergebnisse mehrere Zeilen für die Ansicht.
Sie können die Ausgabe dieser Systemprozedur mit der Ausgabe der sa_materialized_view_info-Systemprozedur kombinieren, um Informationen über den Status einer Ansicht und ihre Eignung als Sofortansicht zu erhalten. Weitere Hinweise finden Sie im Beispielabschnitt unter sa_materialized_view_info-Systemprozedur.
DBA-Berechtigung oder Berechtigung zum Ausführen für dem DBO gehörende Prozeduren
Alle Metadaten für die angegebene materialisierte Ansicht sowie alle Abhängigkeiten werden in den Servercache geladen.
Führen Sie die folgenden Anweisungen aus, um eine manuelle Ansicht namens view10 zu erstellen und aktualisieren Sie sie.
CREATE MATERIALIZED VIEW view10 AS (SELECT C.ID, C.Surname, sum(P.UnitPrice) as revenue, C.CompanyName, SO.OrderDate FROM Customers C, SalesOrders SO, SalesOrderItems SOI, Products P WHERE C.ID = SO.CustomerID AND SO.ID = SOI.ID AND P.ID = SOI.ProductID GROUP BY C.ID, C.Surname, C.CompanyName, SO.OrderDate); REFRESH MATERIALIZED VIEW view10; |
Benutzen Sie die folgende Abfrage, um die Ursache zu ermitteln, warum view10 nicht in eine Sofortansicht verwandelt werden kann:
SELECT SQLStateVal AS "SQLstate", ErrorMessage AS Description FROM sa_materialized_view_can_be_immediate( 'view10', 'DBA' ) ORDER BY SQLSTATE; |
SQLstate | Beschreibung |
---|---|
42WC3 | Die materialisierte Ansicht view10 kann nicht in eine Sofortansicht verwandelt werden, weil sie bereits initialisiert wurde. |
42WCA | Die materialisierte Ansicht view10 kann nicht in eine Sofortansicht verwandelt werden, weil sie keinen eindeutigen Index oder nicht-nullfähige Spalten aufweist. |
42WC6 | Die materialisierte Ansicht kann nicht in eine Sofortansicht verwandelt werden, weil COUNT(*) Teil der SELECT-Liste sein muss. |
42WC7 | Die materialisierte Ansicht kann nicht in eine Sofortansicht verwandelt werden, weil sie keinen eindeutigen Index oder nicht-aggregierbare, nicht-nullfähige Spalten aufweist. |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |