如何通过SQLPLUS将现有应用程序导入APEX

时间:2019-05-21 15:14:49

标签: oracle sqlplus apex

我有一个现有的测试应用程序。我的配置是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 个答案:

答案 0 :(得分:1)

当我将应用程序从一个环境迁移到另一个环境时,我不使用任何“ apex_application_install”调用。我只是通过SQL * Plus作为与工作空间关联的用户/模式连接到数据库,然后运行导出的应用程序.sql文件(通过SQLcl导出)

我知道有时候您可能想要更改应用程序ID等,但是如果目标环境中的所有内容都相同,请保持简单。

导入脚本示例:here

要在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>

管理GUI

Administration GUI