SQL-Referenz zu Voraussetzungen

Datenbankobjekte und Prozeduren

Die folgenden Datenbankobjekte werden über die Datei prerequisites.sql erstellt.

STATE.PREREQUISITES

Interne Tabelle, in der die Daten zu den Voraussetzungen gespeichert werden. Diese Tabelle ist von außerhalb der App nicht zugänglich. Um die Daten zu lesen, verwenden Sie die Ansicht PUBLIC.PREREQUISITES unten. Die Tabelle enthält folgende Spalten:

  • id STRING

  • title VARCHAR

  • description VARCHAR

  • learnmore_url VARCHAR

  • documentation_url VARCHAR

  • guide_url VARCHAR

  • custom_properties VARIANT

  • is_completed BOOLEAN

  • position INTEGER

PUBLIC.PREREQUISITES

Diese Ansicht ist für die Rollen ADMIN und VIEWER sichtbar. Gibt die Daten aus der obigen Tabelle zurück. Die Zeilen werden aufsteigend nach der Spalte position sortiert. Das Einfügen von Voraussetzungen erfolgt innerhalb von setup.sql. Allerdings muss dies so erfolgen, dass das Einfügen während der Aktualisierung übersprungen wird. Beispiel:

EXECUTE IMMEDIATE
$$
DECLARE
    prerequisites_exist NUMBER;
BEGIN
    SELECT COUNT (*) INTO :prerequisites_exist FROM state.prerequisites;
    IF (:prerequisites_exist = 0) THEN
        INSERT INTO STATE.PREREQUISITES (ID, TITLE, DESCRIPTION, DOCUMENTATION_URL, POSITION)
            VALUES
                ('1', '<Prerequisite name>', '<Prerequisite description>', 'Prerequisite url', 1)
    END IF;
END;
$$;
Copy

Ein anderer Ansatz besteht darin, stattdessen eine Merge-Anweisung zu verwenden und bei Übereinstimmung nichts zu tun (oder zu aktualisieren).

PUBLIC.COMPLETE_PREREQUISITES_STEP()

Prozedur, die für ADMIN-Benutzer verfügbar ist. Für die erfolgreiche Ausführung dieser Prozedur müssen nicht alle Voraussetzungen erfüllt sein. Wenn der Konfigurationsstatus des Konnektors INSTALLED ist, ändert sich der Status des Konnektors in:

{
    "status": "CONFIGURING",
    "configurationStatus": "PREREQUISITES_DONE"
}
Copy

Andernfalls gibt es keine Auswirkungen.

Für diese Prozedur muss sich der Konnektor im Status CONFIGURING befinden und der Konfigurationsstatus darf nicht FINALIZED sein. Andernfalls wird eine Ausnahme ausgelöst.

Mögliche Fehler sind:

  • INVALID_CONNECTOR_STATUS – „connector_status“ ist nicht [CONFIGURING].

  • INVALID_CONNECTOR_CONFIGURATION_STATUS – „configuration_status“ ist FINALIZED.

  • UNKNOWN_ERROR – Etwas Unerwartetes ist passiert; die Meldung der ausgelösten Ausnahme wird weitergeleitet.

PUBLIC.UPDATE_PREREQUISITE (ID VARCHAR, IS_COMPLETED BOOLEAN)

Diese Prozedur setzt einen Status der gegebenen Voraussetzung auf den angegebenen Wert. Ist nur für ADMIN-Benutzer verfügbar. Die Validierungen sind ähnlich wie bei der Prozedur COMPLETE_PREREQUISITES_STEP().

Mögliche Fehler sind:

  • INVALID_CONNECTOR_STATUS – Status des Konnektors ist nicht [CONFIGURING].

  • INVALID_CONNECTOR_CONFIGURATION_STATUS – Status der Konnektorkonfiguration ist FINALIZED.

  • PREREQUISITE_NOT_FOUND – Voraussetzung mit gegebener ID nicht gefunden.

PUBLIC.MARK_ALL_PREREQUISITES_AS_DONE()

Diese Prozedur setzt die Spalte is_completed für alle Voraussetzungen auf true. Die Validierungen sind ähnlich wie bei der Prozedur COMPLETE_PREREQUISITES_STEP().

Mögliche Fehler sind:

  • INVALID_CONNECTOR_STATUS – Status des Konnektors ist nicht [CONFIGURING].

  • INVALID_CONNECTOR_CONFIGURATION_STATUS – Status der Konnektorkonfiguration ist FINALIZED.