Oracle APEX 4.2-安装与配置 下载本文

[键入文字]

Oracle APEX 4.2安装与配置 Oracle 官方文档翻译 北极熊 2015年16周 [键入文字]

Oracle APEX 4.2安装与配置 绪言 .......................................................................................................... 1 1

Oracle Application Express安装综述................................................. 2 1.1 1.2 1.3 1.4

安装过程概述 ......................................................................... 2 从之前的Oracle Application Express版本升级 ....................... 2 关于运行环境 ......................................................................... 2 关于选择Web监听器 ............................................................. 3 1.4.1 关于 Oracle Application Express Listener和Oracle HTTP Server with mod_plsql ....................................................................... 3

1.4.2 About the Embedded PL/SQL Gateway ................................ 4 1.4.3 Selecting a Web Listener in an Oracle RAC Environment ...... 4 1.5

可用的安装场景 ..................................................................... 4 1.5.1 Downloading from OTN and Configuring the Oracle Application Express Listener: ........................................................... 5

1.5.2 Downloading from OTN and Configuring the Embedded PL/SQL Gateway ................................................................................. 5

1.5.3 Downloading from OTN and Configuring Oracle HTTP Server 6

2

Oracle Application Express安装要求................................................. 6 2.1 Oracle Database 要求 ................................................................ 6 2.2 Browser 要求 ............................................................................. 7 2.3 Web Listener 要求 ..................................................................... 7 2.4 Disk Space 要求 ......................................................................... 8 2.5 Oracle XML DB 要求 ................................................................... 8 2.6 PL/SQL Web Toolkit ..................................................................... 8

I

Oracle APEX 4.2安装与配置 绪言

这篇指南描述如何安装和配置Oracle Application Express.

1 / 51

Oracle APEX 4.2安装与配置 1 Oracle Application Express安装综述

1.1 安装过程概述

安装包含以下过程:

? 计划安装:此章设计Oracle Application Express安装的必须步骤。

在计划阶段,你应该明确是否安装完整的开发环境或是运行环境。你还应该明确使用哪种Web 监听器。Oracle Application Express可用的监听器选项包括:embedded pl/sql gateway,或是Oracle HTTP Server和mod_plsql。

完整的开发环境提供完全的应用构建环境为开发者。运行环境产品实现的合适选择,当运行应用且不需要改变它时。更多内容见:“关于Oracle Application Express 运行环境”;

? 校验安装需求:“Oracle Application Express 安装需求”描述了安

装之前在你系统中必须具备的最小需求;

? 安装软件:必须得安装步骤取决于你选择的Web监听器

1.2 从之前的Oracle Application Express版本升级

如果你之前安装了Oracle Application Express的1.5.x, 1.6.x, 2.0.x, 2.2.x, 3.0.x, 3.1.x, 3.2.x, 4.0x or 4.1x版本,选择相应场景中的升级步骤将Oracle Application Expresss升级到4.2,并将Oracle Application Express 4.2数据库对象建立在一个新的schema,然后移植应用。

1.3 关于运行环境

为测试产品实例,Oracle Application Express支持仅安装Oracle Application Express的运行时版本。运行时环境最小化安装足迹和权限以提升应用的安全性,在运行环境中开发者不会由于疏忽改变产品应用。

Oracle Application Express能够运行产品应用,但是不为管理提供Web接口。运行环境仅仅包含运行应用所必须的包。管理运行时环境使用sql*plus或是Sql developer工具运行APEX_INSTANCE_ADMIN API。学习更多的见Oracle Application Express Application Builder User's Guide中的\。

从一个已存在实例中添加或删除开发接口的脚本见Oracle Application Express的安装场景中升级部分。

2 / 51

Oracle APEX 4.2安装与配置 1.4 关于选择Web监听器

为了接收和响应来之Internet的请求。Oracle Application Express使用下列三种Web监听器之一,Oracle Application Express Listener, Oracle HTTP Server with mod_plsql,or the embedded PL/SQL gateway。如何选择最佳的Web监听器参见:

http://www.oracle.com/technetwork/developer-tools/apex/application-express/apex-deploy-installation-1878444.html#listener

1.4.1 关于 Oracle Application Express Listener和

Oracle HTTP Server with mod_plsql

Oracle Application Express监听器直接与Oracle Application Express引擎通讯。Oracle HTTP Server使用mod_plsql插件与数据库内部的Oracle Application Express引擎通讯。Oracle Application Express监听器与Oracle HTTP Server作为Web Server与Oracle数据库内部对象之间通讯的中介器。具体来说它们调用SQL*net连接映射浏览器请求到数据库存储过程中。下面的图片说明了Oracle Application Express监听器的体系结构。

使用Oracle Application Express Listener or Oracle HTTP Server (Apache) with mod_plsql主要好处在于分离中间层与数据库层。

当使用Oracle HTTP Server时image存储在文件系统中,相关别名 /i/。如果从一个之前的Oracle Application Express版本升级,可以定位文件系统中的image目录,通过以下文件能够搜索别名/i/:

Oracle HTTP Server和Oracle 11g r1之后的版本,看dads.conf文件 Oracle Application Server 10g,看marvel.conf文件

3 / 51

Oracle APEX 4.2安装与配置 1.4.2 About the Embedded PL/SQL Gateway

Oracle XML DB Protocol Server 和 embedded PL/SQL gateway随着Oracle数据库安装。它提供Oracle数据库内的Web服务器和建立动态应用必须的结构。embedded PL/SQL gateway运行在数据库的XML DB协议服务器中并包含mod_plsql核心特性。下面的图片说明了Oracle embedded PL/SQL gateway的体系结构。

安全方面:The embedded PL/SQL gateway运行Oracle数据库内部作为XML DB HTTP 协议监听器的一部分。因为Oracle Application Express在安装时与HTTP监听器是同样的数据库,它不可能从数据库分离HTTP监听器。因此Oracle不推荐在Internet中使用embedded PL/SQL gateway。

使用The embedded PL/SQL gateway时images位于数据库内部。

1.4.3 Selecting a Web Listener in an Oracle RAC

Environment

当在运行Oracle Real Application Clusters (Oracle RAC)环境Oracle Application Express时,Oracle推荐使用Oracle Application Express Listener或 Oracle HTTP Server with mod_plsql。Oracle Application Express Listener 或 Oracle HTTP Server with mod_plsql允许你指定一个连接使用服务名格,这样HTTP Server能够访问所有节点。

Oracle推荐不要the embedded PL/SQL gateway选项对应Oracle RAC d的安装。The embedded PL/SQL gateway 使用的HTTP Server建立在数据库实例内,由于这个原因利用Oracle RAC 体系机构带来的好处。

1.5 可用的安装场景

场景 1: Downloading from OTN and Configuring the Oracle Application Express Listener

4 / 51

Oracle APEX 4.2安装与配置 场景 2: Downloading from OTN and Configuring the Embedded PL/SQL Gateway

场景 3: Downloading from OTN and Configuring Oracle HTTP Server

1.5.1 Downloading from OTN and Configuring the

Oracle Application Express Listener:

以下步骤对应在OTN上下载并配置Oracle Application Express监听器 Step 1: Install the Oracle Database and Complete Pre-installation Tasks Step 2: Download and Install Oracle Application Express Step 3: Change the Password for the ADMIN Account Step 4: Configure RESTful Services Step 5: Restart Processes

Step 6: Configure APEX_PUBLIC_USER Account

Step 7: Download and Install Oracle Application Express Listener Step 8: Enable Network Services in Oracle Database 11g Step 9: Security Considerations

Step 10: About Developing Oracle Application Express in Other Languages

Step 11: About Managing JOB_QUEUE_PROCESSES

Step 12: Create a Workspace and Add Oracle Application Express Users

1.5.2 Downloading from OTN and Configuring the

Embedded PL/SQL Gateway

以下步骤对应在OTN上下载并配置the Embedded PL/SQL Gateway Step 1: Install the Oracle Database and Complete Pre-installation Tasks Step 2: Download and Install Oracle Application Express Step 3: Change the Password for the ADMIN Account Step 4: Configure the Embedded PL/SQL Gateway Step 5: Enable Network Services in Oracle Database 11g Step 6: Security Considerations

Step 7: About Running Oracle Application Express in Other Languages Step 8: About Managing JOB_QUEUE_PROCESSES Step 9: Configuring the SHARED_SERVERS Parameter

5 / 51

Oracle APEX 4.2安装与配置 Step 10: Create a Workspace and Add Oracle Application Express Users

1.5.3 Downloading from OTN and Configuring Oracle

HTTP Server

以下步骤对应在OTN上下载并配置Oracle HTTP Server

Step 1: Install the Oracle Database and Complete Pre-installation Tasks Step 2: Download and Install Oracle Application Express Step 3: Change the Password for the ADMIN Account Step 4: Restart Processes

Step 5: Configure Oracle HTTP Server Distributed with Oracle Database 11g or Oracle Application Server 10g

Step 6: Enable Network Services in Oracle Database 11g Step 7: Security Considerations

Step 8: About Running Oracle Application Express in Other Languages Step 9: About Managing JOB_QUEUE_PROCESSES

Step 10: About Obfuscating PlsqlDatabasePassword Parameter Step 11: Create a Workspace and Add Oracle Application Express Users

2 Oracle Application Express安装要求

本章描述了Oracle Application Express安装的要求

2.1 Oracle Database 要求

Oracle Application Express release 4.2 必须Oracle database (Enterprise Edition, Standard Edition or Standard Edition One) Release 10.2.0.4或更高版本。Oracle Application Express 4.2也能使用Oracle Database Express Edition 10g Release 2 和之后的版本。Oracle HTTP Server不包含在Oracle Database Express Edition.中。

2.1.1 检查目标数据库的shared_pool_size

Oracle Application Express 必须最少100M的shared_pool_size

6 / 51

Oracle APEX 4.2安装与配置 查看并修改shared_pool_size sqlplus / as sysdba show parameter pfile

show parameter shared_pool_size

alter system set shared_pool_size=100m scope=spfile; shutdown immediate startup

2.2 Browser 要求

运行或开发Oracle Application Express应用,Web browsers必须使能avaScript。下列browsers对于开发Oracle Application Express应用是必须的:

Microsoft Internet Explorer 7.0 or later Mozilla Firefox 14 or later Google Chrome 21 or later Apple Safari 5.0 or later

2.3 Web Listener 要求

为了运行Oracle Application Express你必须至少能访问下列之一: ? Oracle Application Express Listener

Oracle Application Express Listener是基于JAVA的Web服务器,它具备文件系统缓存特性,能够提高文件上传能力,并且Oracle WebLogic Server, Oracle Glassfish Server, and OC4J上是认证的

? Embedded PL/SQL gateway

Oracle XML DB Protocol server with the embedded PL/SQL gateway 随着Oracle Database 11g Release 1安装。它提供了在数据库中的Web server 和建立动态应用必须得基础架构。

? Oracle HTTP Server and mod_plsql

Oracle HTTP Server使用mod_plsql插件和Oracle数据库中的Oracle Application Express引擎通讯。

以下产品包含相应版本的HTTP Server和mod_plsql: Oracle Database 10g Companion CD Release 2 Oracle Database 11g Release 1 or 2

7 / 51

Oracle APEX 4.2安装与配置 2.4 Disk Space 要求

Oracle Application Express软件下载,在文件系统中需要:278 MB 仅下载英文版本(apex_4.2_en.zip) 和 935 MB 下载完整版本(apex_4.2.zip).

Oracle Application Express表空间需要275 MB的空闲空间 SYSTEM表空间需要100 MB的空闲空间

Oracle Application Express 表空间为每个附加的语言安装需要 (other than English) 60 MB的空闲空间

2.5 Oracle XML DB 要求

Oracle XML DB 必须在数据库中安装。如果你通过使用DBCA安装预配置的数据库,那么Oracle XML DB 将已经安装并配置。

提示:安装程序将会先进行检查,如果XML DB未安装将会退出; Oracle XML DB安装将会建立帐号ANONYMOUS,为了使Oracle Application Express工作空间正确的工作,ANONYMOUS帐号必须删除。

2.6 PL/SQL Web Toolkit

Oracle Application Express必须PL/SQL Web Toolkit release 10.1.2.0.6或之后版本。为指导查看PL/SQL Web Toolkit的当前版本和安装release 10.1.2.0.6,请查看在apex/owa目录下的README.txt文件。

3 从OTN下载并安装Oracle Application Express

本章描述如何从OTN上下在Oracle Application Express的ZIP文件,并完成Oracle Application Express安装

3.1 推荐的安装之前的任务

在安装Oracle Application Express之前,Oracel推荐你完成如下任务:

1. 认真回顾所有安装需求;

2. 关闭你需要安装Oracle Application Express的数据库实例,对于

8 / 51

Oracle APEX 4.2安装与配置 Oracle RAC关闭所有节点上的实例。

另一个可选的在升级Oracle Application Express时相对于关闭数据库以阻止所有用户访问的方法。Oracle仅推荐在高可用系统中不可中断数据库时使用,其它情况下都应该关闭数据库。

对于使用Oracle Application Express监听器,关闭相应应用服务器对于使用Oracle HTTP Server with mod_plsql,关闭应用服务器或对于使用emdedded PL/SQL网关,应该通过设置HTTP端口为0 的EXEC DBMS_XDB.SETHTTPPORT(0); 上的Oracle Application Express监听器;

是禁用应用服务器上的Application Express访问描述符; 方式禁用XML DB协议服务器,通过sqlplus执行命令:

在明确阻止了所有用户访问Oracle Application Express之后,使用sqlplus 以sys用户登录安装Oracle Application Express,并查询v$session视图确保没有长时间运行的会话干扰升级过程 3. 备份数据库

Oracle推荐在安装Oracle Application Express之前备份数据库

3.2 选择一个Web Listener

为了接收和响应来之Internet的请求。Oracle Application Express使用下列三种Web监听器之一,Oracle Application Express Listener, Oracle HTTP Server with mod_plsql,or the embedded PL/SQL gateway。如何选择最佳的Web监听器参见:

http://www.oracle.com/technetwork/developer-tools/apex/application-express/apex-deploy-installation-1878444.html#listener

3.3 从OTN下载并配置Oracle Application Express Listener

3.3.1 安装Oracle 数据库并完成预安装任务

Oracle Application Express必须Oracle database Release 10.2.0.4 或之后版本或 Oracle Database 10g Express Edition

9 / 51

Oracle APEX 4.2安装与配置 3.3.2 下载并安装Oracle Application Express

1. 下载Oracle Application Express英文版或多语言版

http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

2. 解压文件

UNIX:$unzip apex_4.2_en.zip 或 $unzip apex_4.2.zip Windows:直接在Windows Explorer中解压 3. 改变工作目录到apex

4. 使用sql*plus以sysdba角色的sys用户连接到数据库进行Oracle

Application Express安装

5. 检查默认策略文件中存在的密码复杂度规则 6. 选择一个相应的安装选项

完整的开发环境提供了开发应用完全的应用构建环境。运行时环境使用户能运行应用且不能改变应用。

可用的安装选项包括:

完整开发环境运行apexins.sql脚本并使用如下显示的四个参数: @apexins.sql tablespace_apex tablespace_files tablespace_temp images ? tablespace_apex:Oracle Application Express应用用户的表空间名; ? tablespace_files: Oracle Application Express 文件用户的表空间名; ? tablespace_temp: 临时表空间名

? images:Oracle Application Express images的虚拟目录。为支持Oracle

Application Express将来的升级,定义虚拟image目录为/i/。 例子:@apexins.sql SYSAUX SYSAUX TEMP /i/

注意:如果下列错误,则请退出SQL*Plus并改变进入工作目录到apex:

SP2-0310: unable to open file \

运行时环境运行apxrtins.sql脚本并使用如下显示的四个参数: @apxrtins.sql tablespace_apex tablespace_files tablespace_temp images ? tablespace_apex:Oracle Application Express应用用户的表空间名; ? tablespace_files: Oracle Application Express 用户表空间的文件名; ? tablespace_temp: 临时表空间名

? images:Oracle Application Express images的虚拟目录。为支持Oracle

Application Express将来的升级,定义虚拟image目录为/i/。 例子:@aprxtins.sql SYSAUX SYSAUX TEMP /i/

当Oracle Application Express安装时,将建立3个新的数据库账号: ? APEX_040200:这个账号是Oracle Application Express schema 和元数

10 / 51

Oracle APEX 4.2安装与配置 据的所有者;

? FLOWS_FILES:这个账号是 Oracle Application Express上传文件的所

有者;

? APEX_PUBLIC_USER:这是最小权限的账号,用户Oracle Application

Express配置Oracle Application Express Listener 或 Oracle HTTP Server and mod_plsql。This account is created to enable a later switch to a different HTTP server。

注:Oracle Application Express必须从一个可写的目录安装

如果配置RESTful Web services,那么两个附加的账号将创建:

? APEX_REST_PUBLIC_USER:这个账号调用存储在Oracle Application

Express中的RESTful Services definitions。

? APEX_LISTENER:这个账号用于查询存储在Oracle Application Express

中的RESTful Services definitions。

3.3.3 修改admin账号密码

在安装新的Oracle Application Express,或是从运行时环境转换到开发环境时,你必须修改内部账号admin的密码。

注:admin账号用于登录Oracle Application Express Administration Services管理Oracle Application Express实例。

修改admin账号密码: sqlplus / as sysdba @apxchpwd.sql

3.3.4 重新启动进程

在安装Oracle Application Express之后必须重新启动进程。

3.3.5 配置APEX_PUBLIC_USER

正确的配置APEX_PUBLIC_USER账号对于能正确操作Oracle Application Express时重要的。

解锁APEX_PUBLIC_USER账号

对于新安装的Oracle Application Express应用APEX_PUBLIC_USER账号是锁定的,在配置database access descriptor (DAD)之前需要解锁这个账号。

sqlplus / as sysdba

11 / 51

Oracle APEX 4.2安装与配置

alter user APEX_PUBLIC_USER account unlock; sqlplus / as sysdba

alter user APEX_PUBLIC_USER identified by apexpub;

在Oracle 11g安装的默认策略中PASSWORD_LIFE_TIME设置为180天。

修改APEX_PUBLIC_USER账号密码

关于Oracle Database 11g的密码终止

如果在Oracle 11g数据库上使用Oracle Application Express将导致APEX_PUBLIC_USER 密码180天终止。Oracle Application Express实例将不可用直到修改密码。

为了消除这个行为,为APEX_PUBLIC_USER用户设置独立的策略为无限制。

3.3.6 下载并安装Oracle Application Express Listener

下载最新版本的 Oracle Application Express Listener,从Oracle Application Express下载页面下载类似 apex_listener.version.number.zip文件名的文件:

http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html

注:文件名中的 version.number显示的是当前版本号。 解压下载的zip文件到你选定的目录或文件夹。 UNIX and Linux: unzip apex_listener.version.number.zip

Windows: 使用Windows Explorer解压apex_listener.version.number.zip 根据安装手册的介绍完成Oracle Application Express Listener安装和配置步骤。

禁用Oracle XML DB Protocol Server

如果之前 使用embedded PL/SQL Gateway现在希望使用Oracle Application Express Listener,那么需要禁用Oracle XML DB Protocol server。

校验端口号,确认Oracle XML DB Protocol Server运行:

sqlplus / as sysdba

select dbms_xdb.gethttpport from dual;

如果端口号是0,那么Oracle XML DB Protocol Server是禁用的。 禁用Oracle XML DB Protocol Server

sqlplus / as sysdba

EXEC DBMS_XDB.SETHTTPPORT(port); 例:EXEC DBMS_XDB.SETHTTPPORT(0);

12 / 51

Oracle APEX 4.2安装与配置 3.3.7 配置RESTful Services

如果新安装一个Oracle Application Express,运行apex_rest_config.sql配置脚本进行RESTful Services配置。此步骤是可选的,仅需要希望在Oracle Application Express Listener实例上使用RESTful Services完成。一旦配置实例管理员能够控制这个特性的可用性,管理员能够禁用RESTful Services,RESTful Services将不可用并且RESTful Services icon不被显示。

注:RESTful Services必须Oracle Application Express Listener 2.0 或之后。 配置RESTful服务

改变目录到解压安装Oracle Application Express的目录 sqlplus / as sysdba @apex_rest_config.sql

根据提示输入APEX_LISTENER和APEX_REST_PUBLIC_USER账号的密码,Oracle Application Express配置RESTful Services将创建两个新账号。

3.3.8 在Oracle 11g中开启网络服务

默认情况下Oracle 11g r1和r2的网络交互能力是禁用的。因而,如果在Oracle 11g上使用Oracle Application Express必须使用一个新的包dbms_network_acl_admin授权连接权限给所有主机针对于apex_040200数据库用户。授权失败将产生如下问题:

? Oracle Application Express发送邮件时。用户可以调用APEX_MAIL

发送邮件,但将发现问题;

? Oracle Application Express调用Web Services时 ? PDF/report打印时 1. 授权连接权限

接下来的例子展示了如何为数据库用户APEX_040200授权连接权限给任何主机。这个例子假定你已经使用sys用户以sysdba角色连接到安装了Oracle Application Express的数据库

DECLARE

ACL_PATH VARCHAR2(4000); BEGIN

-- Look for the ACL currently assigned to '*' and give APEX_040200 -- the \ SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

13 / 51

Oracle APEX 4.2安装与配置 IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 'connect') IS NULL THEN

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', TRUE, 'connect'); END IF; EXCEPTION

-- When no ACL has been assigned to '*'. WHEN NO_DATA_FOUND THEN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml', 'ACL that lets power users to connect to everywhere', 'APEX_040200', TRUE, 'connect');

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); END; /

COMMIT;

接下来的例子展示了如何提供更少的权限访问网络资源。这个例子开启Oracle Application Express Online Help指引和email,PDF printing ,如果这些服务在本地主机时。

DECLARE

ACL_PATH VARCHAR2(4000); BEGIN

-- Look for the ACL currently assigned to 'localhost' and give APEX_040200 -- the \ SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS

WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 'connect') IS NULL THEN

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', TRUE, 'connect'); END IF; EXCEPTION

-- When no ACL has been assigned to 'localhost'. WHEN NO_DATA_FOUND THEN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 'ACL that lets users to connect to localhost', 'APEX_040200', TRUE, 'connect');

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost');

14 / 51

Oracle APEX 4.2安装与配置 END; /

COMMIT;

2. 无效的ACL错误疑难解答

如果在运行之前脚本后收到ORA-44416: Invalid ACL error,使用下列查询定位无效的ACL

REM Show the dangling references to dropped users in the ACL that is assigned REM to '*'.

SELECT ACL, PRINCIPAL

FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND NACL.ACLID = ACE.ACLID AND

NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

下一步,运行下列代码修复ACL

DECLARE

ACL_ID RAW(16); CNT NUMBER; BEGIN

-- Look for the object ID of the ACL currently assigned to '*' SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- If just some users referenced in the ACL are invalid, remove just those -- users in the ACL. Otherwise, drop the ACL completely. SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE WHERE ACLID = ACL_ID AND

EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL); IF (CNT > 0) THEN

FOR R IN (SELECT PRINCIPAL FROM XDS_ACE WHERE ACLID = ACL_ID AND

NOT EXISTS (SELECT NULL FROM ALL_USERS

WHERE USERNAME = PRINCIPAL)) LOOP

UPDATE XDB.XDB$ACL SET OBJECT_VALUE =

DELETEXML(OBJECT_VALUE,

15 / 51

Oracle APEX 4.2安装与配置 '/ACL/ACE[PRINCIPAL=\ WHERE OBJECT_ID = ACL_ID; END LOOP; ELSE

DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID; END IF; END; /

REM commit the changes. COMMIT;

3.3.9 安全考虑

Oracle强烈推荐使用Secure Sockets Layer (SSL)确保密码和其他敏感信息不会在传输过程存在潜在的暴露可能。

3.3.10 管理JOB_QUEUE_PROCESSES

JOB_QUEUE_PROCESSES确定并行运行的工作数。在 Oracle Application Express Release 4.2中事务与SQL脚本都需要job支持,JOB_QUEUE_PROCESSES如果未启用或正确的工作,那么不能成功的执行脚本。

1. 检查JOB_QUEUE_PROCESSES参数

登录Oracle Application Express,查看About Application Express页面,或使用sqlplus连接到数据库

sqlplus / as sysdba

show parameter JOB_QUEUE_PROCESSES

2. 设置JOB_QUEUE_PROCESSES参数

sqlplus / as sysdba

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=100;

3.3.11 使用其它语言运行Oracle Application Express

Oracle Application Express界面能转变为German, Spanish, French, Italian, Japanese, Korean, Brazilian Portuguese, Simplified Chinese, and Traditional Chinese。一个单实例的Oracle Application Express 能够安装一种或多种翻译版本。开发者能够在任何已安装的语言中选择一种运行Application Express

16 / 51

Oracle APEX 4.2安装与配置 开发环境,通过登录Application Builder主页简单的进行选择。

为了安装其它语言必须使用 apex_4.2.zip文件。如果你先前下载apex_4.2_en.zip,,那么不需要重新安装Oracle Application Express。仅需简单的下载apex_4.2.zip并解压文件到之前apex_4.2_en.zip时相同的目录。

The translated version of Oracle Application Express should be loaded into a database that has a character set that supports the specific language. If you attempt to install a translated version of Oracle Application Express into a database that does not support the character encoding of the language, the installation may fail or the translated Oracle Application Express instance may appear corrupt when run. The database character set AL32UTF8 supports all the translated versions of Oracle Application Express.

You can manually install translated versions of Oracle Application Express using SQL*Plus. The installation files are encoded in AL32UTF8

注:不管目标数据库的字符集,你安装Oracle Application Express时,必须设置NLS_LANG环境变量为AL32UTF8,在运行sqlplus之前。

1. 安装Oracle Application Express的翻译版本

无论是升级还是安装新的版本都需要运行load_lang.sql脚本来转换Oracle Application Express。

这个安装脚本位于解压apex/builder目录下相对应语言代码的子目录,如German版本位于apex/builder/de ,Japanese版本位于apex/builder/ja。在每个目录内,有一个语言代码标识的脚本 (例: load_de.sql or load_ja.sql).

为安装a translated version of Oracle Application Express: 设置NLS_LANG环境变量为AL32UTF8,例: SIMPLIFIED CHINESE_CHINA.AL32UTF8 Bourne or Korn shell:

NLS_LANG=American_America.AL32UTF8 export NLS_LANG C shell:

setenv NLS_LANG American_America.AL32UTF8 For Windows based systems:

set NLS_LANG=American_America.AL32UTF8

进入你需要安装的语言的目录,用sys用户以sysdba角色登录到Oracle Application Express安装的数据库

sqlplus / as sysdba

ALTER SESSION SET CURRENT_SCHEMA = APEX_040200; @load_lang.sql

其中lang是指定的语言 (例:load_de.sql for German or load_ja.sql for

17 / 51

Oracle APEX 4.2安装与配置 Japanese)。

3.3.12 配置SHARED_SERVERS参数

Embedded PL/SQL gateway使用Oracle数据库的共享服务器体系,当使用embedded PL/SQL gateway时为获得可接受的性能,确保SHARED_SERVERS 数据库初始化参数设置为相应的值(不要是0或1)。对于小规模的并发用户Oracle推荐SHARED_SERVERS设置为5.

sqlplus / as sysdba

ALTER SYSTEM SET SHARED_SERVERS = 5 SCOPE=BOTH;

3.3.13 在Oracle Application Express建立一个工作空

间并添加一个用户

使用Web浏览器访问Oracle Application Express主页并登录一个工作空间。Web浏览器的JavaScript必须是启用的。

工作空间是一个虚拟的私有数据库,允许多个用户在同一个Oracle Application Express安装中工作并保持他们的对象,数据和应用私有。每个工作空间有一个唯一的ID和名称。

An instance administrator can create a workspace manually within Oracle Application Express Administration Services or have users submit requests. Oracle Application Express Administration Services is a separate application for managing an entire Oracle Application Express instance.

1. 手工建立一个工作空间

登录到Oracle Application Express Administration Services。

打开浏览器

http://hostname:port/apex/apex_admin 输入:admin/password

点击“管理工作空间” 点击“建立工作空间” 输入:

工作空间名:输入唯一的工作空间名

工作空间ID:保留空白Oracle将自动输入一个ID,ID是至少大空间描述

18 / 51

于100000的整型

下一步,输入schema,指定是否使用现有的或建立一个新的

Oracle APEX 4.2安装与配置

如果使用现有schema,选择yes,在Re-use existing schema,

在列表中选择一个schema

输入新的用户名和密码,选择一个空间配额 如果建立一个新的schema

校验输入信息,点击建立工作空间 2. 建立一个Oracle Application Express用户

登录到Oracle Application Express Administration Services。

打开浏览器

http://hostname:port/apex/apex_admin 输入:admin/password

点击“管理工作空间” 点击“管理开发者和用户” 点击“建立用户” 输入用户属性:

? 用户名:最长100字符,不包括空格,特殊字符仅允许@和. ? 电子邮件地址: ? First Name ? Last Name ? 描述

? 默认日期格式

输入账号权限

? Workspace:从列表中选择工作空间

? Default Schemas:指定data browsing, application creation, and

SQL script execution的默认schema。当工作空间有多余一个schema可用时,这个schema是默认的,这个设置不是因为安全,仅是用户参照。

? User is a workspace administrator:指定用户拥有工作空间管理员

权限。管理员能够访问所有组件,能够管理用户账号,组和开发服务。如果实例管理员关闭,组件将不可用。

? User is a developer:指定用户开发者权限。开发者必须访问

Application Builder, SQL Workshop, or both。如果实例管理员关闭,组件将不可用。

? Application Builder Access:决定开发者是否能访问Application

Builder

? SQL Workshop Access:决定开发者是否能访问SQL Workshop ? Team Development Access :决定开发者是否能访问Team

Development

19 / 51

Oracle APEX 4.2安装与配置 ? Set Account Availability:选择锁定阻止账号使用,解锁与允许账

号使用。 输入密码:

? Password:密码大小写敏感 ? Confirm Password:再次输入密码

? Require Change of Password On First Use:选择No允许用户使用

相同密码,选择Yes用户在第一次登录时必须修改密码。

3.3.14 登录建立的工作空间

打开浏览器

http://hostname:port/apex

3.4 从OTN下载并配置the Embedded PL/SQL Gateway

3.4.1 安装Oracle 数据库并完成预安装任务

Oracle Application Express必须Oracle database Release 10.2.0.4 或之后版本或 Oracle Database 10g Express Edition

3.4.2 下载并安装Oracle Application Express

7. 下载Oracle Application Express英文版或多语言版

http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

8. 解压文件

UNIX:$unzip apex_4.2_en.zip 或 $unzip apex_4.2.zip Windows:直接在Windows Explorer中解压 9. 改变工作目录到apex

10. 使用sql*plus以sysdba角色的sys用户连接到数据库进行Oracle

Application Express安装

11. 检查默认策略文件中存在的密码复杂度规则 12. 选择一个相应的安装选项

完整的开发环境提供了开发应用完全的应用构建环境。运行时环境使用户能运行应用且不能改变应用。

20 / 51

Oracle APEX 4.2安装与配置 可用的安装选项包括:

完整开发环境运行apexins.sql脚本并使用如下显示的四个参数: @apexins.sql tablespace_apex tablespace_files tablespace_temp images ? tablespace_apex:Oracle Application Express应用用户的表空间名; ? tablespace_files: Oracle Application Express 文件用户的表空间名; ? tablespace_temp: 临时表空间名

? images:Oracle Application Express images的虚拟目录。为支持Oracle

Application Express将来的升级,定义虚拟image目录为/i/。 例子:@apexins.sql SYSAUX SYSAUX TEMP /i/

注意:如果下列错误,则请退出SQL*Plus并改变进入工作目录到apex:

SP2-0310: unable to open file \

运行时环境运行apxrtins.sql脚本并使用如下显示的四个参数: @apxrtins.sql tablespace_apex tablespace_files tablespace_temp images ? tablespace_apex:Oracle Application Express应用用户的表空间名; ? tablespace_files: Oracle Application Express 用户表空间的文件名; ? tablespace_temp: 临时表空间名

? images:Oracle Application Express images的虚拟目录。为支持Oracle

Application Express将来的升级,定义虚拟image目录为/i/。 例子:@aprxtins.sql SYSAUX SYSAUX TEMP /i/

当Oracle Application Express安装时,将建立3个新的数据库账号: ? APEX_040200:这个账号是Oracle Application Express schema 和元数

据的所有者;

? FLOWS_FILES:这个账号是 Oracle Application Express上传文件的所

有者;

? APEX_PUBLIC_USER:这是最小权限的账号,用户Oracle Application

Express配置Oracle Application Express Listener 或 Oracle HTTP Server and mod_plsql。This account is created to enable a later switch to a different HTTP server。

注:Oracle Application Express必须从一个可写的目录安装

3.4.3 修改admin账号密码

在安装新的Oracle Application Express,或是从运行时环境转换到开发环境时,你必须修改内部账号admin的密码。

注:admin账号用于登录Oracle Application Express Administration Services管理Oracle Application Express实例。

21 / 51

Oracle APEX 4.2安装与配置 修改admin账号密码: sqlplus / as sysdba @apxchpwd.sql

3.4.4 配置Emdedded PLSQL Gateway

Embedded PL/SQL gateway在Oracle 11g上已经被安装。然而你必须配置它,在你Oracle Application Expresss使用它之前。

注:Oracle XML DB Protocol Server with the embedded PL/SQL gateway 在Oracle 11g之前不被支持。

1. 运行apex_epg_config.sql配置脚本

在新的安装中,运行性apex_epg_config.sql脚本配置Embedded PL/SQL gateway,然后解锁anonymous账号。

注:如果是升级安装并且之前配置了embedded PL/SQL gateway,那么略过这节,跳到“从之前版本升级时更新目录” 运行apex_epg_config.sql脚本: 改变工作目录到apex解压目录 sqlplus / as sysdba

运行apex_epg_config.sql脚本,使用之前解压的基目录作为参数

@apex_epg_config.sql E:\\apex_4.2.6 解锁anonymous账号

alter user anonymous account unlock;

2. 从之前版本升级时更新目录

如果你从Oracle Application Express执行的版本升级,你必须运行apxldimg.sql更新目录。

注:如果不是从一个之前的版本升级,那么这个步骤是不需要的。image将通过之前一步运行的apex_epg_config.sql脚本载入。 运行apxldimg.sql脚本:

运行apxldimg.sql脚本,使用之前解压的基目录作为参数

@apxldimg.sql E:\\apex_4.2.6

注:以上例子假定将apex解压到E:\\apex_4.2.6 3. 校验Oracle XML DB Protocol Server端口

Embedded PL/SQL gateway运行在Oracle数据库的Oracle XML DB Protocol Server中。你可以通过确定相关联的端口号Oracle XML DB Protocol Server是否运行。

校验端口号,确认Oracle XML DB Protocol Server运行:

sqlplus / as sysdba

22 / 51

Oracle APEX 4.2安装与配置 select dbms_xdb.gethttpport from dual;

如果端口号是0,那么Oracle XML DB Protocol Server是禁用的。 4. 开启Oracle XML DB Protocol Server

sqlplus / as sysdba

EXEC DBMS_XDB.SETHTTPPORT(port); 例:EXEC DBMS_XDB.SETHTTPPORT(8080);

3.4.5 在Oracle 11g中开启网络服务

默认情况下Oracle 11g r1和r2的网络交互能力是禁用的。因而,如果在Oracle 11g上使用Oracle Application Express必须使用一个新的包dbms_network_acl_admin授权连接权限给所有主机针对于apex_040200数据库用户。授权失败将产生如下问题:

? Oracle Application Express发送邮件时。用户可以调用APEX_MAIL

发送邮件,但将发现问题;

? Oracle Application Express调用Web Services时 ? PDF/report打印时 3. 授权连接权限

接下来的例子展示了如何为数据库用户APEX_040200授权连接权限给任何主机。这个例子假定你已经使用sys用户以sysdba角色连接到安装了Oracle Application Express的数据库

DECLARE

ACL_PATH VARCHAR2(4000); BEGIN

-- Look for the ACL currently assigned to '*' and give APEX_040200 -- the \ SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 'connect') IS NULL THEN

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', TRUE, 'connect'); END IF; EXCEPTION

-- When no ACL has been assigned to '*'. WHEN NO_DATA_FOUND THEN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',

23 / 51

Oracle APEX 4.2安装与配置 'ACL that lets power users to connect to everywhere', 'APEX_040200', TRUE, 'connect');

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); END; /

COMMIT;

接下来的例子展示了如何提供更少的权限访问网络资源。这个例子开启Oracle Application Express Online Help指引和email,PDF printing ,如果这些服务在本地主机时。

DECLARE

ACL_PATH VARCHAR2(4000); BEGIN

-- Look for the ACL currently assigned to 'localhost' and give APEX_040200 -- the \ SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS

WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 'connect') IS NULL THEN

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', TRUE, 'connect'); END IF; EXCEPTION

-- When no ACL has been assigned to 'localhost'. WHEN NO_DATA_FOUND THEN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 'ACL that lets users to connect to localhost', 'APEX_040200', TRUE, 'connect');

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); END; /

COMMIT;

4. 无效的ACL错误疑难解答

如果在运行之前脚本后收到ORA-44416: Invalid ACL error,使用下列查询定位无效的ACL

REM Show the dangling references to dropped users in the ACL that is assigned REM to '*'.

SELECT ACL, PRINCIPAL

24 / 51

Oracle APEX 4.2安装与配置 FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND NACL.ACLID = ACE.ACLID AND

NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

下一步,运行下列代码修复ACL

DECLARE

ACL_ID RAW(16); CNT NUMBER; BEGIN

-- Look for the object ID of the ACL currently assigned to '*' SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- If just some users referenced in the ACL are invalid, remove just those -- users in the ACL. Otherwise, drop the ACL completely. SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE WHERE ACLID = ACL_ID AND

EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL); IF (CNT > 0) THEN

FOR R IN (SELECT PRINCIPAL FROM XDS_ACE WHERE ACLID = ACL_ID AND

NOT EXISTS (SELECT NULL FROM ALL_USERS

WHERE USERNAME = PRINCIPAL)) LOOP

UPDATE XDB.XDB$ACL SET OBJECT_VALUE =

DELETEXML(OBJECT_VALUE,

'/ACL/ACE[PRINCIPAL=\ WHERE OBJECT_ID = ACL_ID; END LOOP; ELSE

DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID; END IF; END; /

REM commit the changes.

25 / 51

Oracle APEX 4.2安装与配置 COMMIT;

3.4.6 安全考虑

Oracle强烈推荐使用Secure Sockets Layer (SSL)确保密码和其他敏感信息不会在传输过程存在潜在的暴露可能。

3.4.7 管理JOB_QUEUE_PROCESSES

JOB_QUEUE_PROCESSES确定并行运行的工作数。在 Oracle Application Express Release 4.2中事务与SQL脚本都需要job支持,JOB_QUEUE_PROCESSES如果未启用或正确的工作,那么不能成功的执行脚本。

3. 检查JOB_QUEUE_PROCESSES参数

登录Oracle Application Express,查看About Application Express页面,或使用sqlplus连接到数据库

sqlplus / as sysdba

show parameter JOB_QUEUE_PROCESSES

4. 设置JOB_QUEUE_PROCESSES参数

sqlplus / as sysdba

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=100;

3.4.8 使用其它语言运行Oracle Application Express

Oracle Application Express界面能转变为German, Spanish, French, Italian, Japanese, Korean, Brazilian Portuguese, Simplified Chinese, and Traditional Chinese。一个单实例的Oracle Application Express 能够安装一种或多种翻译版本。开发者能够在任何已安装的语言中选择一种运行Application Express开发环境,通过登录Application Builder主页简单的进行选择。

为了安装其它语言必须使用 apex_4.2.zip文件。如果你先前下载apex_4.2_en.zip,,那么不需要重新安装Oracle Application Express。仅需简单的下载apex_4.2.zip并解压文件到之前apex_4.2_en.zip时相同的目录。

The translated version of Oracle Application Express should be loaded into a database that has a character set that supports the specific language. If you attempt to install a translated version of Oracle Application Express into a database that does not support the character encoding of the language, the installation may fail or the translated Oracle Application Express instance may

26 / 51

Oracle APEX 4.2安装与配置 appear corrupt when run. The database character set AL32UTF8 supports all the translated versions of Oracle Application Express.

You can manually install translated versions of Oracle Application Express using SQL*Plus. The installation files are encoded in AL32UTF8

注:不管目标数据库的字符集,你安装Oracle Application Express时,必须设置NLS_LANG环境变量为AL32UTF8,在运行sqlplus之前。

2. 安装Oracle Application Express的翻译版本

无论是升级还是安装新的版本都需要运行load_lang.sql脚本来转换Oracle Application Express。

这个安装脚本位于解压apex/builder目录下相对应语言代码的子目录,如German版本位于apex/builder/de ,Japanese版本位于apex/builder/ja。在每个目录内,有一个语言代码标识的脚本 (例: load_de.sql or load_ja.sql).

为安装a translated version of Oracle Application Express: 设置NLS_LANG环境变量为AL32UTF8,例: SIMPLIFIED CHINESE_CHINA.AL32UTF8 Bourne or Korn shell:

NLS_LANG=American_America.AL32UTF8 export NLS_LANG C shell:

setenv NLS_LANG American_America.AL32UTF8 For Windows based systems:

set NLS_LANG=American_America.AL32UTF8

进入你需要安装的语言的目录,用sys用户以sysdba角色登录到Oracle Application Express安装的数据库

sqlplus / as sysdba

ALTER SESSION SET CURRENT_SCHEMA = APEX_040200; @load_lang.sql

其中lang是指定的语言 (例:load_de.sql for German or load_ja.sql for Japanese)。

3.4.9 配置SHARED_SERVERS参数

Embedded PL/SQL gateway使用Oracle数据库的共享服务器体系,当使用embedded PL/SQL gateway时为获得可接受的性能,确保SHARED_SERVERS 数据库初始化参数设置为相应的值(不要是0或1)。对于小规模的并发用户Oracle推荐SHARED_SERVERS设置为5.

sqlplus / as sysdba

27 / 51

Oracle APEX 4.2安装与配置 ALTER SYSTEM SET SHARED_SERVERS = 5 SCOPE=BOTH;

3.4.10 在Oracle Application Express建立一个工作空

间并添加一个用户

使用Web浏览器访问Oracle Application Express主页并登录一个工作空间。Web浏览器的JavaScript必须是启用的。

工作空间是一个虚拟的私有数据库,允许多个用户在同一个Oracle Application Express安装中工作并保持他们的对象,数据和应用私有。每个工作空间有一个唯一的ID和名称。

An instance administrator can create a workspace manually within Oracle Application Express Administration Services or have users submit requests. Oracle Application Express Administration Services is a separate application for managing an entire Oracle Application Express instance.

3. 手工建立一个工作空间

登录到Oracle Application Express Administration Services。

打开浏览器

http://hostname:port/apex/apex_admin 输入:admin/password

点击“管理工作空间” 点击“建立工作空间” 输入:

工作空间名:输入唯一的工作空间名

工作空间ID:保留空白Oracle将自动输入一个ID,ID是至少大空间描述

如果使用现有schema,选择yes,在Re-use existing schema,

在列表中选择一个schema

输入新的用户名和密码,选择一个空间配额 如果建立一个新的schema

于100000的整型

下一步,输入schema,指定是否使用现有的或建立一个新的

校验输入信息,点击建立工作空间 4. 建立一个Oracle Application Express用户

登录到Oracle Application Express Administration Services。

打开浏览器

http://hostname:port/apex/apex_admin

28 / 51

Oracle APEX 4.2安装与配置 输入:admin/password

点击“管理工作空间” 点击“管理开发者和用户” 点击“建立用户” 输入用户属性:

? 用户名:最长100字符,不包括空格,特殊字符仅允许@和. ? 电子邮件地址: ? First Name ? Last Name ? 描述

? 默认日期格式

输入账号权限

? Workspace:从列表中选择工作空间

? Default Schemas:指定data browsing, application creation, and

SQL script execution的默认schema。当工作空间有多余一个schema可用时,这个schema是默认的,这个设置不是因为安全,仅是用户参照。

? User is a workspace administrator:指定用户拥有工作空间管理员

权限。管理员能够访问所有组件,能够管理用户账号,组和开发服务。如果实例管理员关闭,组件将不可用。

? User is a developer:指定用户开发者权限。开发者必须访问

Application Builder, SQL Workshop, or both。如果实例管理员关闭,组件将不可用。

? Application Builder Access:决定开发者是否能访问Application

Builder

? SQL Workshop Access:决定开发者是否能访问SQL Workshop ? Team Development Access :决定开发者是否能访问Team

Development

? Set Account Availability:选择锁定阻止账号使用,解锁与允许账

号使用。 输入密码:

? Password:密码大小写敏感 ? Confirm Password:再次输入密码

? Require Change of Password On First Use:选择No允许用户使用

相同密码,选择Yes用户在第一次登录时必须修改密码。

29 / 51

Oracle APEX 4.2安装与配置 3.4.11 登录建立的工作空间

打开浏览器

http://hostname:port/apex

3.5 从OTN下载并配置Oracle HTTP Server

Oracle HTTP Server with mod_plsql与Oracle Database 11g or Oracle Application Server 10g一起发布

3.5.1 安装Oracle 数据库并完成预安装任务

Oracle Application Express配置必须Oracle database Release 10.2.0.4 或之后版本或 Oracle Database 10g Express Edition

3.5.2 下载并安装Oracle Application Express

13. 下载Oracle Application Express英文版或多语言版

http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

14. 解压文件

UNIX:$unzip apex_4.2_en.zip 或 $unzip apex_4.2.zip Windows:直接在Windows Explorer中解压 15. 改变工作目录到apex

16. 使用sql*plus以sysdba角色的sys用户连接到数据库进行Oracle

Application Express安装

17. 检查默认策略文件中存在的密码复杂度规则 18. 选择一个相应的安装选项

完整的开发环境提供了开发应用完全的应用构建环境。运行时环境使用户能运行应用且不能改变应用。

可用的安装选项包括:

完整开发环境运行apexins.sql脚本并使用如下显示的四个参数: @apexins.sql tablespace_apex tablespace_files tablespace_temp images ? tablespace_apex:Oracle Application Express应用用户的表空间名; ? tablespace_files: Oracle Application Express 文件用户的表空间名; ? tablespace_temp: 临时表空间名

30 / 51

Oracle APEX 4.2安装与配置 ? images:Oracle Application Express images的虚拟目录。为支持Oracle

Application Express将来的升级,定义虚拟image目录为/i/。 例子:@apexins.sql SYSAUX SYSAUX TEMP /i/

注意:如果下列错误,则请退出SQL*Plus并改变进入工作目录到apex:

SP2-0310: unable to open file \

运行时环境运行apxrtins.sql脚本并使用如下显示的四个参数: @apxrtins.sql tablespace_apex tablespace_files tablespace_temp images ? tablespace_apex:Oracle Application Express应用用户的表空间名; ? tablespace_files: Oracle Application Express 用户表空间的文件名; ? tablespace_temp: 临时表空间名

? images:Oracle Application Express images的虚拟目录。为支持Oracle

Application Express将来的升级,定义虚拟image目录为/i/。 例子:@aprxtins.sql SYSAUX SYSAUX TEMP /i/

当Oracle Application Express安装时,将建立3个新的数据库账号: ? APEX_040200:这个账号是Oracle Application Express schema 和元数

据的所有者;

? FLOWS_FILES:这个账号是 Oracle Application Express上传文件的所

有者;

? APEX_PUBLIC_USER:这是最小权限的账号,用户Oracle Application

Express配置Oracle Application Express Listener 或 Oracle HTTP Server and mod_plsql。This account is created to enable a later switch to a different HTTP server。

注:Oracle Application Express必须从一个可写的目录安装

3.5.3 修改admin账号密码

在安装新的Oracle Application Express,或是从运行时环境转换到开发环境时,你必须修改内部账号admin的密码。

注:admin账号用于登录Oracle Application Express Administration Services管理Oracle Application Express实例。

修改admin账号密码: sqlplus / as sysdba @apxchpwd.sql

31 / 51

Oracle APEX 4.2安装与配置 3.5.4 重新启动进程

在安装Oracle Application Express之后必须重新启动进程。

3.5.5 配置Oracle HTTP Server连同 Oracle Database

11g 或 Oracle Application Server 10g发布的

1. 解锁APEX_PUBLIC_USER账号

对于新安装的Oracle Application Express应用APEX_PUBLIC_USER账号是锁定的,在配置database access descriptor (DAD)之前需要解锁这个账号。

sqlplus / as sysdba

alter user APEX_PUBLIC_USER account unlock; sqlplus / as sysdba

alter user APEX_PUBLIC_USER identified by apexpub;

在Oracle 11g安装的默认策略中PASSWORD_LIFE_TIME设置为180天。

2. 修改APEX_PUBLIC_USER账号密码

关于Oracle Database 11g的密码终止

如果在Oracle 11g数据库上使用Oracle Application Express将导致APEX_PUBLIC_USER 密码180天终止。Oracle Application Express实例将不可用直到修改密码。

为了消除这个行为,为APEX_PUBLIC_USER用户设置独立的策略为无限制。

3. 拷贝images目录

无论是新的安装还是升级Oracle Application Express,都必须将images目录(apex/images)拷贝的Oracle HOME包含的Oracle HTTP Server目录下

? 在升级后拷贝images

在升级的过程中将覆盖images目录,在开始升级前,为了确保能回到原有的版本Oracle推荐你拷贝已存在的images目录到一个指定版本号的images (例如:images_3_1)。

为定位images目录,回顾下列文件中的文本别名:/i/

在Oracle Application Server 10g看marvel.conf

在Oracle HTTP Server distributed with Oracle Database 11g看dads.conf

拷贝apex/images目录覆盖存在的images

32 / 51

Oracle APEX 4.2安装与配置 Oracle Application Server 10g:

Windows:xcopy /E /I APEX_HOME\\apex\\images ORACLE_HTTPSERVER_HOME\\Apache\\images UNIX and Linux:cp -rf APEX_HOME/apex/images ORACLE_HTTPSERVER_HOME/Apache

Oracle HTTP Server distributed with Oracle Database 11g:

Windows:xcopy /E /I APEX_HOME\\apex\\images ORACLE_HTTPSERVER_HOME\\ohs\\images UNIX and Linux:cp -rf APEX_HOME/apex/images ORACLE_HTTPSERVER_HOME/ohs ? 在新的安装后拷贝images Oracle Application Server 10g:

Windows:xcopy /E /I APEX_HOME\\apex\\images ORACLE_HTTPSERVER_HOME\\Apache\\images UNIX and Linux:cp -rf APEX_HOME/apex/images ORACLE_HTTPSERVER_HOME/Apache

Oracle HTTP Server distributed with Oracle Database 11g:

Windows:xcopy /E /I APEX_HOME\\apex\\images ORACLE_HTTPSERVER_HOME\\ohs\\images UNIX and Linux:cp -rf APEX_HOME/apex/images ORACLE_HTTPSERVER_HOME/ohs

4. 配置Oracle HTTP Server 11g or Oracle Application Server 10g 注:文档内容包含在Oracle HTTP Server安装的 ORACLE_HTTPSERVER_HOME目录下

编辑dads.conf文件:如果新安装Oracle Application Express,必须编辑dads.conf或marvel.conf。dads.conf文件包含了Database Access Descriptor (DAD) 如何访问Oracle Application Express的信息。

使用文本编辑器打开dads.conf文件 Oracle Application Server 10g: Windows:

ORACLE_HTTPSERVER_HOME\\Apache\\modplsql\\conf\\dads.conf UNIX and Linux:

ORACLE_HTTPSERVER_HOME/Apache/modplsql/conf/dads.conf

Oracle HTTP Server distributed with Oracle Database 11g: Windows:

ORACLE_HTTPSERVER_HOME\\ohs\\modplsql\\conf\\dads.conf UNIX and Linux:

33 / 51

Oracle APEX 4.2安装与配置 ORACLE_HTTPSERVER_HOME/ohs/modplsql/conf/dads.conf

在dads.conf文件中替换ORACLE_HTTPSERVER_HOME, host, port, service_name, 和apex_public_user_password为相应的值。

Alias /i/ \

Order deny,allow PlsqlDocumentPath docs AllowOverride None

PlsqlDocumentProcedure wwv_flow_file_mgr.process_download PlsqlDatabaseConnectString host:port:service_name ServiceNameFormat PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8 PlsqlAuthenticationMode Basic SetHandler pls_handler

PlsqlDocumentTablename wwv_flow_file_objects$ PlsqlDatabaseUsername APEX_PUBLIC_USER PlsqlDefaultPage apex

PlsqlDatabasePassword apex_public_user_password

PlsqlRequestValidationFunction wwv_flow_epg_include_modules.authorize Allow from all

定位包含PlsqlNLSLanguage的行, PlsqlNLSLanguage决定DAD的语言集。其中character set部分必须设置为AL32UTF8,无论数据库character set是否是AL32UTF8.例如:

...

PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8 ...

保存并关闭dads.conf

5. 停止并重新启动Oracle HTTP Server Windows:

对于低于数据库10g的版本:

ORACLE_HTTPSERVER_HOME\\opmn\\bin\\opmnctl

stopproc ias-component=HTTP_Server ORACLE_HTTPSERVER_HOME\\opmn\\bin\\opmnctl

startproc ias-component=HTTP_Server UNIX and Linux:

对于低于数据库10g的版本:

34 / 51

Oracle APEX 4.2安装与配置 ORACLE_HTTPSERVER_HOME/opmn/bin/opmnctl

stopproc ias-component=HTTP_Server ORACLE_HTTPSERVER_HOME/opmn/bin/opmnctl

startproc ias-component=HTTP_Server

注:如果使用的Oracle HTTP Server属于Oracle Fusion Middleware 11.1.1,可能需要替换ias-component名,如果这个名称被用于其它的HTTP_Server,这个默认的名称是ohs1

禁用Oracle XML DB Protocol Server

如果之前 使用embedded PL/SQL Gateway现在希望使用Oracle Application Express Listener,那么需要禁用Oracle XML DB Protocol server。

校验端口号,确认Oracle XML DB Protocol Server运行:

sqlplus / as sysdba

select dbms_xdb.gethttpport from dual;

如果端口号是0,那么Oracle XML DB Protocol Server是禁用的。 禁用Oracle XML DB Protocol Server

sqlplus / as sysdba

EXEC DBMS_XDB.SETHTTPPORT(port); 例:EXEC DBMS_XDB.SETHTTPPORT(0);

3.5.6 在Oracle 11g中开启网络服务

默认情况下Oracle 11g r1和r2的网络交互能力是禁用的。因而,如果在Oracle 11g上使用Oracle Application Express必须使用一个新的包dbms_network_acl_admin授权连接权限给所有主机针对于apex_040200数据库用户。授权失败将产生如下问题:

? Oracle Application Express发送邮件时。用户可以调用APEX_MAIL

发送邮件,但将发现问题;

? Oracle Application Express调用Web Services时 ? PDF/report打印时 5. 授权连接权限

接下来的例子展示了如何为数据库用户APEX_040200授权连接权限给任何主机。这个例子假定你已经使用sys用户以sysdba角色连接到安装了Oracle Application Express的数据库

DECLARE

ACL_PATH VARCHAR2(4000); BEGIN

35 / 51

Oracle APEX 4.2安装与配置 -- Look for the ACL currently assigned to '*' and give APEX_040200 -- the \ SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 'connect') IS NULL THEN

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', TRUE, 'connect'); END IF; EXCEPTION

-- When no ACL has been assigned to '*'. WHEN NO_DATA_FOUND THEN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml', 'ACL that lets power users to connect to everywhere', 'APEX_040200', TRUE, 'connect');

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); END; /

COMMIT;

接下来的例子展示了如何提供更少的权限访问网络资源。这个例子开启Oracle Application Express Online Help指引和email,PDF printing ,如果这些服务在本地主机时。

DECLARE

ACL_PATH VARCHAR2(4000); BEGIN

-- Look for the ACL currently assigned to 'localhost' and give APEX_040200 -- the \ SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS

WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 'connect') IS NULL THEN

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', TRUE, 'connect'); END IF; EXCEPTION

-- When no ACL has been assigned to 'localhost'. WHEN NO_DATA_FOUND THEN

36 / 51

Oracle APEX 4.2安装与配置 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 'ACL that lets users to connect to localhost', 'APEX_040200', TRUE, 'connect');

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); END; /

COMMIT;

6. 无效的ACL错误疑难解答

如果在运行之前脚本后收到ORA-44416: Invalid ACL error,使用下列查询定位无效的ACL

REM Show the dangling references to dropped users in the ACL that is assigned REM to '*'.

SELECT ACL, PRINCIPAL

FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND NACL.ACLID = ACE.ACLID AND

NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

下一步,运行下列代码修复ACL

DECLARE

ACL_ID RAW(16); CNT NUMBER; BEGIN

-- Look for the object ID of the ACL currently assigned to '*' SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS

WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- If just some users referenced in the ACL are invalid, remove just those -- users in the ACL. Otherwise, drop the ACL completely. SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE WHERE ACLID = ACL_ID AND

EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL); IF (CNT > 0) THEN

FOR R IN (SELECT PRINCIPAL FROM XDS_ACE WHERE ACLID = ACL_ID AND

NOT EXISTS (SELECT NULL FROM ALL_USERS

WHERE USERNAME = PRINCIPAL))

37 / 51

Oracle APEX 4.2安装与配置 LOOP

UPDATE XDB.XDB$ACL SET OBJECT_VALUE =

DELETEXML(OBJECT_VALUE,

'/ACL/ACE[PRINCIPAL=\ WHERE OBJECT_ID = ACL_ID; END LOOP; ELSE

DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID; END IF; END; /

REM commit the changes. COMMIT;

3.5.7 安全考虑

Oracle强烈推荐使用Secure Sockets Layer (SSL)确保密码和其他敏感信息不会在传输过程存在潜在的暴露可能。

3.5.8 管理JOB_QUEUE_PROCESSES

JOB_QUEUE_PROCESSES确定并行运行的工作数。在 Oracle Application Express Release 4.2中事务与SQL脚本都需要job支持,JOB_QUEUE_PROCESSES如果未启用或正确的工作,那么不能成功的执行脚本。

5. 检查JOB_QUEUE_PROCESSES参数

登录Oracle Application Express,查看About Application Express页面,或使用sqlplus连接到数据库

sqlplus / as sysdba

show parameter JOB_QUEUE_PROCESSES

6. 设置JOB_QUEUE_PROCESSES参数

sqlplus / as sysdba

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=100;

38 / 51

Oracle APEX 4.2安装与配置 3.5.9 使用其它语言运行Oracle Application Express

Oracle Application Express界面能转变为German, Spanish, French, Italian, Japanese, Korean, Brazilian Portuguese, Simplified Chinese, and Traditional Chinese。一个单实例的Oracle Application Express 能够安装一种或多种翻译版本。开发者能够在任何已安装的语言中选择一种运行Application Express开发环境,通过登录Application Builder主页简单的进行选择。

为了安装其它语言必须使用 apex_4.2.zip文件。如果你先前下载apex_4.2_en.zip,,那么不需要重新安装Oracle Application Express。仅需简单的下载apex_4.2.zip并解压文件到之前apex_4.2_en.zip时相同的目录。

The translated version of Oracle Application Express should be loaded into a database that has a character set that supports the specific language. If you attempt to install a translated version of Oracle Application Express into a database that does not support the character encoding of the language, the installation may fail or the translated Oracle Application Express instance may appear corrupt when run. The database character set AL32UTF8 supports all the translated versions of Oracle Application Express.

You can manually install translated versions of Oracle Application Express using SQL*Plus. The installation files are encoded in AL32UTF8

注:不管目标数据库的字符集,你安装Oracle Application Express时,必须设置NLS_LANG环境变量为AL32UTF8,在运行sqlplus之前。

3. 安装Oracle Application Express的翻译版本

无论是升级还是安装新的版本都需要运行load_lang.sql脚本来转换Oracle Application Express。

这个安装脚本位于解压apex/builder目录下相对应语言代码的子目录,如German版本位于apex/builder/de ,Japanese版本位于apex/builder/ja。在每个目录内,有一个语言代码标识的脚本 (例: load_de.sql or load_ja.sql).

为安装a translated version of Oracle Application Express: 设置NLS_LANG环境变量为AL32UTF8,例: SIMPLIFIED CHINESE_CHINA.AL32UTF8 Bourne or Korn shell:

NLS_LANG=American_America.AL32UTF8 export NLS_LANG C shell:

setenv NLS_LANG American_America.AL32UTF8 For Windows based systems:

39 / 51

Oracle APEX 4.2安装与配置 set NLS_LANG=American_America.AL32UTF8

进入你需要安装的语言的目录,用sys用户以sysdba角色登录到Oracle Application Express安装的数据库

sqlplus / as sysdba

ALTER SESSION SET CURRENT_SCHEMA = APEX_040200; @load_lang.sql

其中lang是指定的语言 (例:load_de.sql for German or load_ja.sql for Japanese)。

3.5.10 配置SHARED_SERVERS参数

Embedded PL/SQL gateway使用Oracle数据库的共享服务器体系,当使用embedded PL/SQL gateway时为获得可接受的性能,确保SHARED_SERVERS 数据库初始化参数设置为相应的值(不要是0或1)。对于小规模的并发用户Oracle推荐SHARED_SERVERS设置为5.

sqlplus / as sysdba

ALTER SYSTEM SET SHARED_SERVERS = 5 SCOPE=BOTH;

3.5.11 在Oracle Application Express建立一个工作空

间并添加一个用户

使用Web浏览器访问Oracle Application Express主页并登录一个工作空间。Web浏览器的JavaScript必须是启用的。

工作空间是一个虚拟的私有数据库,允许多个用户在同一个Oracle Application Express安装中工作并保持他们的对象,数据和应用私有。每个工作空间有一个唯一的ID和名称。

An instance administrator can create a workspace manually within Oracle Application Express Administration Services or have users submit requests. Oracle Application Express Administration Services is a separate application for managing an entire Oracle Application Express instance.

5. 手工建立一个工作空间

登录到Oracle Application Express Administration Services。

打开浏览器

http://hostname:port/apex/apex_admin 输入:admin/password

40 / 51

点击“管理工作空间”

Oracle APEX 4.2安装与配置 点击“建立工作空间” 输入:

工作空间名:输入唯一的工作空间名

工作空间ID:保留空白Oracle将自动输入一个ID,ID是至少大空间描述

如果使用现有schema,选择yes,在Re-use existing schema,

在列表中选择一个schema

输入新的用户名和密码,选择一个空间配额 如果建立一个新的schema

于100000的整型

下一步,输入schema,指定是否使用现有的或建立一个新的

校验输入信息,点击建立工作空间 6. 建立一个Oracle Application Express用户

登录到Oracle Application Express Administration Services。

打开浏览器

http://hostname:port/apex/apex_admin 输入:admin/password

点击“管理工作空间” 点击“管理开发者和用户” 点击“建立用户” 输入用户属性:

? 用户名:最长100字符,不包括空格,特殊字符仅允许@和. ? 电子邮件地址: ? First Name ? Last Name ? 描述

? 默认日期格式

输入账号权限

? Workspace:从列表中选择工作空间

? Default Schemas:指定data browsing, application creation, and

SQL script execution的默认schema。当工作空间有多余一个schema可用时,这个schema是默认的,这个设置不是因为安全,仅是用户参照。

? User is a workspace administrator:指定用户拥有工作空间管理员

权限。管理员能够访问所有组件,能够管理用户账号,组和开发服务。如果实例管理员关闭,组件将不可用。

? User is a developer:指定用户开发者权限。开发者必须访问

41 / 51

Oracle APEX 4.2安装与配置 Application Builder, SQL Workshop, or both。如果实例管理员关闭,组件将不可用。

? Application Builder Access:决定开发者是否能访问Application

Builder

? SQL Workshop Access:决定开发者是否能访问SQL Workshop ? Team Development Access :决定开发者是否能访问Team

Development

? Set Account Availability:选择锁定阻止账号使用,解锁与允许账

号使用。 输入密码:

? Password:密码大小写敏感 ? Confirm Password:再次输入密码

? Require Change of Password On First Use:选择No允许用户使用

相同密码,选择Yes用户在第一次登录时必须修改密码。

3.5.12 登录建立的工作空间

打开浏览器

http://hostname:port/apex

3.6 完成升级安装的安装任务

一旦确认升级安装成功并且应用所有功能正确升级,应该删除Oracle Application Express安装的schemas。在升级安装中这个密码将从之前的版本转入。

删除之前的Oracle Application Express安装 1. 完全删除Oracle Application Express

sqlplus / as sysdba @apxremov.sql

删除apex目录下所有文件 删除apex用户

drop user apex_public_user cascade; drop user flows_files cascade; drop user apex_040200 cascade;

注:在Oracle 12c下无法直接删除Oracle管理用户,提示“ORA-28014: 无法删除管理用户”可在执行下列语句后删除:

42 / 51

Oracle APEX 4.2安装与配置 alter session set \

2. 检查存在的安装

sqlplus / as sysdba SELECT username FROM dba_users

WHERE (username LIKE 'FLOWS_%' OR USERNAME LIKE 'APEX_%') AND USERNAME NOT IN ( SELECT 'FLOWS_FILES' FROM DUAL UNION

SELECT 'APEX_PUBLIC_USER' FROM DUAL UNION

SELECT SCHEMA s FROM dba_registry WHERE comp_id = 'APEX');

如果结果包含条目FLOWS_XXXXXX or APEX_XXXXXX where XXXXXX represents six numbers,这些条目是该删除的。 3. 从之前的安装删除schemas

sqlplus / as sysdba

DROP USER FLOWS_030000 CASCADE; 在Oracle Database 11g修复无效的ACL

1. 改变目录到解压安装Oracle Application Express的目录 2. 用sys用户以sysdba登录到数据库

sqlplus / as sysdba EXEC

DBMS_NETWORK_ACL_ADMIN.DELETE_PRIVILEGE('power_users.xml', 'FLOWS_030000');

3.7 性能优化任务

Performance of web applications heavily depend on their size and how often a browser has to request static content like images, CSS and JavaScript files. To improve performance, most web servers allow you to enable on-the-fly file compression and settings on how long browsers can cache a file. Please see your web server manual on how to enable gzip compression and setting the expired header attribute for optimal performance of your Application Express application.

43 / 51

Oracle APEX 4.2安装与配置 3.8 关于Oracle Application Express 运行时环境

Oracle Application Express运行时环境使用户能运行产品应用并且不能改变和编辑应用。它仅包含运行应用必须的包,它不提供Web管理接口。

在Oracle Application Express运行环境中使用SQL*Plus或SQL Developer 调用APEX_INSTANCE_ADMIN API进行管理。

3.8.1 Converting a Runtime Environment to a Full

Development Environment

转换Oracle Application Express runtime environment到full development environment:

改变工作目录到解压安装apex软件的目录。 用sys用户以sysdba登录到数据库

sqlplus / as sysdba @apxdvins.sql

3.8.2 Converting a Full Development Environment to

a Runtime Environment

在转换full development environment 到runtime environment 之前导出所有的Websheet应用。当你转换development environment到runtime, 存在的Websheet data grids和reports将从所有工作空间删除。转换回full development environment将不会恢复这些Websheet data grids or reports。

转换Oracle Application Express full development environment 到runtime environment:

改变工作目录到解压安装apex软件的目录。 用sys用户以sysdba登录到数据库

sqlplus / as sysdba @apxdevrm.sql

44 / 51

Oracle APEX 4.2安装与配置 4 Oracle Application Express疑难解答

4.1 查看安装日志

脚步apexins.sql 在apex目录建立installYYYY-MM-DD_HH24-MI-SS.log类似名字的文件,在安装成功后这个日志文件包含以下内容:

Thank you for installing Oracle Application Express.

Oracle Application Express is installed in the APEX_040200 schema.

4.2 校验有效的Oracle Application Express安装

执行下列查询校验安装:

SELECT STATUS FROM DBA_REGISTRY WHERE COMP_ID = 'APEX'; 返回vaild假定安装成功

4.3 清除失败的Oracle Application Express安装 4.3.1 在升级安装失败后回复到之前版本

1 . 校验之前存在的Oracle Application Express版本

sqlplus / as sysdba

select username from dba_users

where regexp_like(username,'(FLOWS|APEX)_\\d{6}')

and username <> (select table_owner from all_synonyms where synonym_name = 'WWV_FLOW' and owner = 'PUBLIC')

如果查询返回任何结果,表示之前安装Oracle Application Express 2 . 回复到之前版本

修改文本别名 /i/ 到你之前备份的images目录 sqlplus / as sysdba

对于不同版本的Application Express Release执行相应的命令

1) Oracle Application Express Release 1.5:

ALTER SESSION SET CURRENT_SCHEMA = FLOWS_010500; exec

flows_010500.wwv_flow_upgrade.switch_schemas('APEX_040200','FLOWS_010500');

45 / 51

Oracle APEX 4.2安装与配置 2) Oracle Application Express Release 1.6:

ALTER SESSION SET CURRENT_SCHEMA = FLOWS_010600; exec

flows_010600.wwv_flow_upgrade.switch_schemas('APEX_040200','FLOWS_010600');

3) Oracle Application Express Release 2.0:

ALTER SESSION SET CURRENT_SCHEMA = FLOWS_020000; exec

flows_020000.wwv_flow_upgrade.switch_schemas('APEX_040200','FLOWS_020000');

4) Oracle Application Express Release 2.2:

ALTER SESSION SET CURRENT_SCHEMA = FLOWS_020200; exec

flows_020200.wwv_flow_upgrade.switch_schemas('APEX_040200','FLOWS_020200');

5) Oracle Application Express Release 3.0:

Change your working directory to apex in the 3.0 source. set define '^'

@apexvalidate x x FLOWS_030000

ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030000; exec

flows_030000.wwv_flow_upgrade.switch_schemas('APEX_040200','FLOWS_030000');

ALTER SESSION SET CURRENT_SCHEMA = SYS; exec validate_apex;

6) Oracle Application Express Release 3.1:

Change your working directory to apex/core in the 3.1 source. @wwv_flow_val.plb @wwv_dbms_sql.sql @wwv_dbms_sql.plb

Change your working directory to apex in the 3.1 source. set define '^'

@apexvalidate x x FLOWS_030100

ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030100; exec

46 / 51

Oracle APEX 4.2安装与配置 flows_030100.wwv_flow_upgrade.switch_schemas('APEX_040200','FLOWS_030100');

ALTER SESSION SET CURRENT_SCHEMA = SYS; exec validate_apex;

7) Oracle Application Express Release 3.2:

Change your working directory to apex/core in the 3.2 source. @wwv_flow_val.plb @wwv_dbms_sql.sql @wwv_dbms_sql.plb

Change your working directory to apex in the 3.2 source. set define '^'

@apexvalidate x x APEX_030200

ALTER SESSION SET CURRENT_SCHEMA = APEX_030200; exec

apex_030200.wwv_flow_upgrade.switch_schemas('APEX_040200','APEX_030200');

ALTER SESSION SET CURRENT_SCHEMA = SYS; exec validate_apex;

8) Oracle Application Express Release 4.0:

Change your working directory to apex/core in the 4.0 source. @wwv_flow_val.plb @wwv_dbms_sql.sql @wwv_dbms_sql.plb

Change your working directory to apex in the 4.0 source. set define '^'

@apexvalidate x x APEX_040000

ALTER SESSION SET CURRENT_SCHEMA = APEX_040000; exec

apex_040000.wwv_flow_upgrade.switch_schemas('APEX_040200','APEX_040000');

ALTER SESSION SET CURRENT_SCHEMA = SYS; exec validate_apex;

9) Oracle Application Express Release 4.1:

Change your working directory to apex/core in the 4.1 source.

47 / 51

Oracle APEX 4.2安装与配置 @wwv_flow_val.plb @wwv_dbms_sql.sql @wwv_dbms_sql.plb

Change your working directory to apex in the 4.1 source. set define '^'

@apexvalidate x x APEX_040100

ALTER SESSION SET CURRENT_SCHEMA = APEX_040100; exec

apex_040100.wwv_flow_upgrade.switch_schemas('APEX_040200','APEX_040100');

ALTER SESSION SET CURRENT_SCHEMA = SYS; exec validate_apex;

3 . 删除Oracle Application Express Release 4.2 Schema

sqlplus / as sysdba

DROP USER APEX_040200 CASCADE;

4.4 从数据库中删除Application Express Release

本节描述如何从数据库中删除Oracle Application Express schema, synonyms, and users。不删除数据库。

@apxremov.sql

在成功删除后如果你需要重新安装,你必须退出sqlplus,然后重新执行apexins.sql脚本。

4.5 在Oracle Application Express显示Images不正确

如果image在Oracle Application Express 显示不正确,可能由于存在多个别名/i/定义。对于这个问题:

如果可能,重新命名第一个实例/i/ 到一个不同的别名

或是选择拷贝images从ORACLE_HOME\\apex\\images目录到第一个/i/ 别名定义的目录。

48 / 51