Как импортировать существующее приложение в APEX через SQLPLUS - PullRequest
0 голосов
/ 21 мая 2019

У меня есть тестовое приложение.Моя конфигурация Windows 10, APEX 19.1, Database Express 18.4

Я пытаюсь импортировать приложение по sqlplus:

> sqlplus 
> User name: sys as sysdba
> Password: 1234
SQL>@install_KB.sql

И я получаю много ошибок, которые начинаются с:

apex_application_install.set_workspace_id (100101);
  *
ERROR at line 9:
ORA-06550: line 9, column 3:
PLS-00201: identifier 'APEX_APPLICATION_INSTALL.SET_WORKSPACE_ID' must be
declared

ORA-06550: line 9, column 3:
PL/SQL: Statement ignored

ORA-06550: line 10, column 3:
PLS-00201: identifier 'APEX_APPLICATION_INSTALL.SET_APPLICATION_ID' must be
declared
...

Мой источник от install_KB.sql :

spool install-apex-KB.log
@@APEX/kb_apex_0.0.1.sql
@@DB/security_2.1.0.sql
spool off

и источник kb_ apex_0.0.1.sql :

declare
   workspace_id number    := 100101; 
   app_id number          := 62305999; 
   app_owner varchar2(32) := 'test'; 
   app_alias varchar2(32) := 'testapp';

begin 
  apex_application_install.set_workspace_id (workspace_id);
  apex_application_install.set_application_id(app_id);
  apex_application_install.set_schema(app_owner);
  apex_application_install.set_application_alias(app_alias);
end;
/

@@kb_0.0.1.sql

Что я делаю не так?Извините, если ответ очевиден

UPD: список назначений моей схемы - My Schema Assignments list Разработчики приложений и пользователи - Application Developers and Users

1 Ответ

1 голос
/ 21 мая 2019

Я не использую ни одного из этих вызовов "apex_application_install" при переносе приложений из одной среды в другую. Я просто подключаюсь к базе данных через SQL * Plus в качестве пользователя / схемы, связанной с рабочей областью, и запускаю экспортированный файл .sql приложения (который был экспортирован через SQLcl )

Я знаю, что бывают случаи, когда вам может понадобиться изменить идентификатор приложения и т. Д., Но если все в целевой среде одинаково, сделайте это просто.

Примеры скриптов импорта: здесь

Чтобы получить назначение рабочей области для схемы в SQL * Plus, вы можете использовать следующий пример, где APEX_180200 - это схема APEX, а 'ADAM' это рабочее пространство. Или войдите в систему администрирования APEX и перейдите в «Управление рабочими пространствами» / «Управление рабочим пространством для назначений схемы». Обратите внимание, что в приведенном ниже примере мое рабочее пространство и схема оба названы «ADAM».

sqlplus / as sysdba
...
SQL> ALTER SESSION SET CURRENT_SCHEMA = APEX_180200;
SQL> SELECT APEX_INSTANCE_ADMIN.GET_SCHEMAS('ADAM') FROM DUAL;
APEX_INSTANCE_ADMIN.GET_SCHEMAS('ADAM')
--------------------------------------------------------------------------------
ADAM  

SQL>

Admin GUI

Administration GUI

...