先决条件 SQL 参考

数据库对象和过程

以下数据库对象是通过文件 prerequisites.sql 创建的。

STATE.PREREQUISITES

用于持久保存先决条件有关数据的内部表。此表无法在应用程序外部进行访问。要读取数据,请使用下面的 PUBLIC.PREREQUISITES 视图。该表包含以下列:

  • 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

此视图会对 ADMINVIEWER 角色公开。它会返回上表中的数据。将按 position 列的升序对行进行排序。插入先决条件发生在 setup.sql 内部。但是,在更新期间必须跳过插入操作。例如:

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

另一种方法是使用合并语句,在匹配时不做任何操作(或更新)。

PUBLIC.COMPLETE_PREREQUISITES_STEP()

可供 ADMIN 用户使用的过程。成功执行此过程并不需要完成所有先决条件。如果连接器的配置状态为 INSTALLED,则会将连接器的状态设置为:

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

否则,不会造成影响。

此过程要求连接器处于 CONFIGURING 状态和配置状态 FINALIZED 以外的状态。否则会引发异常。

可能的错误包括:

  • INVALID_CONNECTOR_STATUS – connector_status 不是 [CONFIGURING]

  • INVALID_CONNECTOR_CONFIGURATION_STATUS – configuration_status 是 FINALIZED

  • UNKNOWN_ERROR – 出现意外错误 – 转发引发异常的消息。

PUBLIC.UPDATE_PREREQUISITE(ID VARCHAR, IS_COMPLETED BOOLEAN)

此过程将给定先决条件的状态设置为所提供的值。仅可供 ADMIN 用户可用。验证与 COMPLETE_PREREQUISITES_STEP() 过程相似。

可能的错误包括:

  • INVALID_CONNECTOR_STATUS – 连接器状态不是 [CONFIGURING]

  • INVALID_CONNECTOR_CONFIGURATION_STATUS – 连接器配置状态是 FINALIZED

  • PREREQUISITE_NOT_FOUND – 找不到给定 ID 的先决条件。

PUBLIC.MARK_ALL_PREREQUISITES_AS_DONE()

此过程会设置 true 的所有先决条件的 is_completed 列。验证与 COMPLETE_PREREQUISITES_STEP() 过程相似。

可能的错误包括:

  • INVALID_CONNECTOR_STATUS – 连接器状态不是 [CONFIGURING]

  • INVALID_CONNECTOR_CONFIGURATION_STATUS – 连接器配置状态是 FINALIZED

语言: 中文