필수 조건 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 가 아닌 상태여야 합니다. 그렇지 않으면 예외가 throw됩니다.

가능한 원인은 다음과 같을 수 있습니다.

  • 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()

이 프로시저는 모든 전제 조건의 is_completed 열을 true 로 설정합니다. 유효성 검사는 COMPLETE_PREREQUISITES_STEP() 프로시저와 유사합니다.

가능한 원인은 다음과 같을 수 있습니다.

  • INVALID_CONNECTOR_STATUS - 커넥터 상태가 [CONFIGURING] 이 아닙니다.

  • INVALID_CONNECTOR_CONFIGURATION_STATUS - 커넥터 구성 상태가 FINALIZED 입니다.