Триггер для запуска подключаемой базы данных - PullRequest
0 голосов
/ 12 апреля 2019

Я реализую триггер, который должен вручную запускать подключаемые базы данных в резервном контейнере. Это мой фактический код:

CREATE OR REPLACE TRIGGER managed_startup_pdbs
    AFTER STARTUP ON DATABASE
DECLARE
    pdb_role VARCHAR(40);
    pdb_name VARCHAR(50);
BEGIN
    SELECT open_mode INTO pdb_role FROM v$database;
    IF pdb_role = 'READ ONLY WITH APPLY' THEN
        FOR i IN (SELECT con_name INTO pdb_name FROM dba_pdb_saved_states)
        LOOP
            EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ''|| pdb_name ||'' OPEN READ ONLY;';
        END LOOP;
    END IF;
END;
/

Но он не запускает никакой pdb. Триггер компилируется без ошибок, я думаю, что может быть какая-то проблема в синтаксической ошибке оператора execute или, возможно, в цикле for.

...