参考文档 : 百度文库 《Oracle ERP APEX开发指南 》
APEX HOME: /oracle11g/product/11.2/apex/apex
Oracle home: /oracle11g/product/11.2/
step 1:
/oracle11g/product/11.2/apex [statdb] >sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Jul 24 14:17:48 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @apxremov.sql
step 2:
SQL> CREATE TABLESPACE apex01 DATAFILE
'/database/statdb/statdb/apex01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 100M MAXSIZE 1000M;
step 3:
unzip /tmp/apex_5.1.2.zip -d /oracle11g/product/11.2/apex
step 4:
cd /oracle11g/product/11.2/apex/apex
sqlplus / as sysdba
@apexins.sql apex01 apex01 temp /i/;
step 5:
@apxchpwd.sql
alter user apex_public_user account unlock;
alter user apex_public_user identified by "Oracle,1";
ALTER USER ANONYMOUS ACCOUNT UNLOCK;
step 6:
export NLS_LANG=american_america.AL32UTF8;
cd builder/zh-cn
sql>alter session set current_schema=APEX_050100;
sql>@load_zh-cn.sql
step 7:
sql>@apex_epg_config /oracle11g/product/11.2/apex
sql>exec dbms_xdb.sethttpport(8866);
step 8:
接下来的例子展示了如何为数据库用户APEX_050100授权连接权限给任何主机。这个例子假定你已经使用sys用户以sysdba角色连接到安装了Oracle Application Express的数据库
DECLARE
ACL_PATH VARCHAR2(4000);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_050100
-- the "connect" privilege if APEX_050100 does not have the privilege yet.
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_050100',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_050100', 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_050100', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;
step 9:
SQL> ALTER system SET shared_servers=5 scope=both;
lsof -i:8866
step 10
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
step 11:
config 1:
SQL> show parameter local
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string LISTENER_OEMDB
log_archive_local_first boolean TRUE
parallel_force_local boolean FALSE
SQL> show parameter disp
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cell_offload_plan_display string AUTO
dispatchers string (PROTOCOL=TCP) (SERVICE=statdb
XDB)
max_dispatchers integer
config 2:
grep LISTENER_OEMDB /etc/tnsnames.ora
LISTENER_OEMDB=(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.45)(PORT = 15021)))
config 3:
/etc/listener.ora
STATDB =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.45)(PORT = 15021))
(ADDRESS = (PROTOCOL = IPC)(KEY = REGISTER_statdb))
)
)
SID_LIST_STATDB =
(SID_LIST =
(SID_DESC =
(SID_NAME = statdb)
(ORACLE_HOME = /oracle11g/product/11.2)
)
)
from
SECURE_REGISTER_STATDB=(IPC)
to
SECURE_REGISTER_STATDB= (IPC,TCP)
step 12
SQL> alter system register;
System altered.
step 13:
HOME /oracle11g/product/11.2/apex/apex
usl:
http://192.168.4.45:8866/apex/apex_admin
http://192.168.4.45:8866/apex/apex
option 1: internal
option 2: ADMIN
option 3: password
Q1:
Question: How does SECURE_CONTROL_listener_name parameter work?
Answer: In Oracle the SECURE_CONTROL_<listener name> parameter is specified this way in the listener.ora file. The values for secure_control_listener_names should be restricted to transports 'tcps' or 'ipc', which are considered secure for administration and registration of a particular listener.
LISTENER1=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))
(ADDRESS=(PROTOCOL=tcps)(HOST=sales-server)(PORT=1522)) )
SECURE_CONTROL_LISTENER1=tcps
The tpcs value stands-for TCP plus SSL security and tcps must be configured to specify this parameter.
If the SECURE_CONTROL_listener_name and SECURE_REGISTER_listener_name parameters are configured, then they override the SECURE_PROTOCOL_listener_name parameter.
Q2: 动态注册
http://blog.sina.com.cn/s/blog_69e7b8d701013uf0.html
http://blog.sina.com.cn/s/blog_6058d7c101014qx2.html
apex 的常见使用说明:
pplication Express 体系结构图
主要特性
以下几部分介绍了 Oracle Application Express 的主要特性。
报告
使用 Oracle Application Express,可快速生成显示 SQL 查询的 HTML 报告。还能以 HTML、PDF、RTF(兼容 Microsoft Word)和 XLS(兼容 Microsoft Excel)格式下载和打印报告。
可通过声明方式将各个报表链接在一起提供下钻报告,并使用绑定变量将信息从会话状态传递至报表。报表支持声明式列标题排序、分组控制、汇总以及分 页。报表排序和分页可以使用部分页面刷新 (PPR) 技术来避免刷新整个页面。还可以向报表添加声明式链接,以将报表数据下载为 CSV 或 XML 格式。此外,您可以使用模板对报表外观进行自定义。
表单
使用向导,可以基于表或存储过程轻松创建表单。基于表创建表单时,这些向导将自动管理插入、更新、删除以及缺失更新检测等操作。一旦创建了表单,就可使用 直观显示重新排列表单域(称为表单项),以快速获得想要的布局。表单项提供了丰富的显示选项,包括文本域、文本区、单选按钮组、选择列表、复选框、日期选 择器、弹出式值列表等。
图表
还可使用向导创建 HTML、SVG 或 Flash 图表。此外,可创建图表来支持用户从一个图表下钻至另一个图表或报表。可使用部分页面刷新 (PPR) 技术刷新图表以避免刷新整个页面。也可将图表配置为按指定间隔刷新。此外,还可利用报表列模板向任意报表添加简单的 HTML 条形图。
电子表格上载
使用电子表格向导中的 Create Application 可快速地将电子表格数据直接上载至数据库中。您可以选择将数据存储在新的数据库表中,或将其添加至现有数据库表。一旦上载了数据,就可以快速创建应用程序 了。通过这个方便的向导,只需单击几下,就可以实现电子表格与共享应用程序之间的切换。
会话状态管理
Oracle Application Express 以透明的方式管理数据库中的会话状态(或应用程序上下文)。表单将自动保存会话状态,记住会话中应用程序的上下文。在 SQL 和 PL/SQL 内引用会话状态就像使用绑定变量般简单。例如,请看以下 SELECT 语句:
SELECT * FROM EMP WHERE EMPNO = :P1_ID
在本例中,P1_ID 项中的值在运行查询时自动进行绑定。还可通过给项目名称加上前缀 & 符号和后缀句点 (.) 在静态上下文内引用会话状态,例如:
&P1_NAME.
对于二维数据集的管理,Oracle Application Express 提供了一个强健的集合基础架构。最值得一提的是,会话管理是无会话状态的,不会消耗内存。
用户界面主题
Oracle Application Express 将显示(或用户界面主题)与应用程序逻辑相分离。您可以用一个主题设计应用程序,然后更改为另一个附带主题,或者创建和使用自己的自定义的主题。通过将应 用程序逻辑(如查询、流程以及分支)与 HTML 呈现分离,应用程序可提前利用新设计和其他技术,而无需重写应用程序。
流控制和导航
每个 Web 应用程序都需要导航,而每个动态应用程序都需要流控制。Oracle Application Express 提供了内置的组件,简化了导航控件的开发和维护。导航是通过使用声明式选项卡(一级或二级)、路径式导航项、树控件以及链接列表来进行控制的。而流控制是 通过使用可在特定事件以及一定条件下起作用的声明式分支来实现的。由于导航控件的外观通过模板控制,因此可轻松更改导航控件的外观。
所有组件上的条件性
创建动态 Web 应用程序时,许多应用程序组件和处理都是具有条件的。换言之,您只能基于应用程序上下文、数据、事件或权限显示或处理特定的信息。Oracle Application Express 使您能够以声明方式指定所有组件的条件性。这使得您可以精确控制用户可在选项卡、按钮、项目、列表项等上看到的内容。
外部接口和可扩展性
尽管 Oracle Application Express 为构建应用程序提供了强健的声明式环境,但您还是可以选择开发自定义界面或控件。例如,如果一个组件不符合环境需要,您可以使用 PL/SQL 生成自己的自定义 HTML。您还可以使用 Web 服务调用外部服务。Oracle Application Express 包含的 API 可以方便将电子邮件警报集成到应用程序中。此外,因为 Oracle Application Express 驻留在 Oracle 数据库中,所以您可以利用数据库本身的功能,如外部表、PL/SQL、数据库链接、网关以及数据库 Java 来扩展应用程序功能。
安全性
利用 Oracle Application Express,您可以创建无需用户登录的公共应用程序,或创建要求身份验证的安全应用程序。Oracle Application Express 提供了许多内置的身份验证模式(包括一次性登录、数据库帐户证书)和一个易于使用的用户管理系统。您还可使用可与任何身份验证服务(包括 Microsoft Active Directory 和 Oracle Applications)交互的自定义模式。
此外,您可自定义身份验证以满足环境要求,并选择性地对整个应用程序、页面或页面组件应用身份验证。最后,您还可利用创新的会话状态保护特性来防止 URL 篡改,利用内置特性来保护应用程序免受 SQL 注入攻击和跨站点脚本编写 (XSS) 攻击。
SQL Workshop 工具
SQL Workshop 提供的工具支持从 Web 浏览器查看和管理数据库对象。使用 SQL 命令运行 SQL 和 PL/SQL 语句。Query Builder 支持通过拖放表格定义查询,轻松创建对象间的关系。Object Browser 提供了一个易于使用的图形用户界面,可用于查看、创建、浏览以及删除数据库对象。最后,您可使用 SQL 创建、编辑、查看、运行以及删除脚本文件。
Supporting Objects 实用程序
通过创建一个打包应用程序,您可以简化在另一个 Oracle Application Express 中导出和安装应用程序所需的步骤。使用 Supporting Objects 实用程序,您可以通过脚本处理应用程序定义,以创建数据库对象、种子数据、图像、层叠样式表和 JavaScript。
打包的应用程序的创建可向应用程序用户提供类似于安装程序的体验,并使在另一个开发、测试甚至是生产实例中导入并安装应用程序的过程自动化。
性能
Oracle Application Express 可为应用程序开发人员和应用程序用户提供极高级别的性能。因为 Oracle Application Express 驻留在 Oracle 数据库中,所以其对网络流量影响甚小。此外,Application Builder 还有许多监视报表,使你能够识别并调整应用程序性能。
打包的应用程序
打包的应用程序是一个可以使用和自定义的功能齐全的应用程序。打包的应用程序不仅阐释 Oracle Application Express 应用程序的有趣示例,还提供立即有用的战术性业务应用程序。打包的应用程序可立即运行 — 它们提供数据库模式、种子数据、图像、应用程序定义以及您所需的一切,安装只需使用向导即可完成。
打包的应用程序
托管开发
Oracle Application Express 支持在单个数据库中托管大量用户。用户在一个称为工作区的专用工作区域中工作。这种灵活的体系结构使单个数据库实例可以管理数千个应用程序。
您可确定供应(或创建)工作区的过程的工作方式。在请求供应模式下,用户在登录页面上使用链接来请求一个工作区。工作区请求批准后,用户会收到一封包含链接的电子邮件,用户必须单击链接来验证其电子邮件地址的有效性。然后他们收到一封具有其登录凭据的电子邮件。