create or replace function report(IN rows_count numeric DEFAULT 1000,
OUT out_rc_type rc_type)
RETURNS rc_type
AS
DECLARE
BEGIN
PERFORM ddl_exec_pkg.ddl_execute ( 'ALTER TABLE REPORT_UI DROP CONSTRAINT REPORT_ID');
PERFORM ddl_exec_pkg.ddl_execute ( 'ALTER TABLE REPORT_ALL_UI DROP CONSTRAINT REPORT_ID');
INSERT INTO
REPORT_UI (SELECT * FROM GE_REPORT);
PERFORM ddl_exec_pkg.ddl_execute ('ALTER TABLE REPORT_UI ADD CONSTRAINT REPORT_ID CHECK (1 = 1)');
PERFORM ddl_exec_pkg.ddl_execute ('ALTER TABLE REPORT_ALL_UI ADD CONSTRAINT REPORT_ID CHECK (1 = 1)');
END;
При запуске приведенного выше кода я получаю сообщение об ошибке ниже:
ОШИБКА: невозможно изменить ALTER TABLE "REPORT_UI"
, так как он используетсяактивные запросы в этом сеансе КОНТЕКСТ:
SQL statement "ALTER TABLE REPORT_UI ADD
CONSTRAINT REPORT_ID CHECK (1 = 1)"