Oracle apex 搭建
###sample 0 apex 论坛回帖功能有问题
1.打开浏览器F12 功能 报错 在项目中将编辑器更改为 editor 时,报错:CKEDITOR is not defined
2. 打开apex 源码检查CKEDITOR 的定义,定义如下
c_path constant varchar2(4000) := nvl(p_plugin.attribute_01, 'https://cdn.ckeditor.com/4.19.0/full-all/');
3.尝试单独访问该网站,无法访问
4.于是调用外网访问,解决该问题,原来是该网站存在问题
####sample 1
purpose : installing APEX 22 and ORDS 22 in centos 7
su - oracle
cd /db/oracle/app/oracle/product/19c/dbhome_1/apex
cd /db/oracle/apex
unizp *.zip
方式1,直接创建PDB
直接从PDB$SEED这个种子PDB,创建新的PDB,
##section 1:Use the following steps to install and configure ORDS:
1.
Download the latest release of ORDS to /u01/app/oradi/ORDS.
Unzip the downloaded file into the directory of your choice.
4.
.
Copy the images directory, /u01/app/oradi/Apex/apex/images, from the APEX software zip file to the location where you plan to install ORDS.
.
[oradi@diatmlckidb01 apex]$ cp -rp images /u01/app/oradi/ORDS/
[oradi@diatmlckidb01 apex]$ pwd
/u01/app/oradi/Apex/apex
[oradi@diatmlckidb01 apex]$ cd /u01/app/oradi/ORDS/
[oradi@diatmlckidb01 ORDS]$ ls -lrt
drwxr-xr-x 32 oradi oinstall 40960 Nov 6 14:21 images
-rw-r--r-- 1 oradi oinstall 63211594 Nov 27 20:14 ords-19.2.0.199.1647.zip
SQL> create pluggable database apex22_2 admin user dbpex identified by dbpex
storage (maxsize 22G)
default tablespace users
path_prefix='/db/oracle/data/CNONE/apex22_2/'
file_name_convert=('/db/oracle/data/CNONE/pdbseed','/db/oracle/data/CNONE/apex22_2');
alter pluggable database apex22_2 open;
SQL> alter session set container = apex22_2;
SQL> create tablespace apex_data datafile '/db/oracle/data/CNONE/apex22_2/apex_data01.dbf' size 4000M;
Tablespace created.
$cd /db/oracle/apex/apex
sqlplus "/as sysdb"
alter session set container = apex22_2;
SQL> @apexins.sql apex_data apex_data TEMP /i/
apex_data - Tablespace to hold Apex Schema and its files
TEMP - Temporary Tablespace
/i/ - It is image directory
输出如下:
Thank you for installing Oracle APEX 22.2.0
Oracle APEX is installed in the APEX_220200 schema.
The structure of the link to the Oracle APEX administration services is as follows:
http://host:port/ords/apex_admin
The structure of the link to the Oracle APEX development interface is as follows:
http://host:port/ords
timing for: Phase 3 (Switch)
Elapsed: 00:00:11.80
timing for: Complete Installation
Elapsed: 00:05:36.26
select username from db_users;
SQL> @apxchpwd.sql
================================================================================
Enter the administrator's username [ADMIN]
User "ADMIN" does not yet exist and will be created.
Enter ADMIN's email [ADMIN]
Enter ADMIN's password [] db****
created instance administrator ADMIN.
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY db_1234;
alter profile default limit password_life_time unlimited;
alter profile db_PROFILE limit password_life_time unlimited;
alter profile APP_PROFILE limit password_life_time unlimited;
Run apex_rest_config.sql. For example:
@apex_rest_config.sql
When Prompted, enter a password for the APEX_LISTENER and APEX_REST_PUBLIC_USER accounts.
When configuring RESTful Services in Oracle APEX, it creates two new database accounts.
APEX_LISTENER - The account used to query RESTful Services definitions stored in Oracle APEX.
APEX_REST_PUBLIC_USER - The account used when calling RESTful Services definitions stored in Oracle APEX.
输出如下:
Enter a password for the APEX_LISTENER user []
Enter a password for the APEX_REST_PUBLIC_USER user []
...set_appun.sql
...setting session environment
...create APEX_LISTENER and APEX_REST_PUBLIC_USER users
...grants for APEX_LISTENER and ORDS_METADATA user
输出完成
###section 2:
Use the following steps to install and configure ORDS:
1.
Download the latest release of ORDS to /db/oracle/ords
2.
3.
Unzip the downloaded file into the directory of your choice.
unzip *
5.
Copy the images directory, /db/oracle/apex/apex/images, from the APEX software zip file to the location where you plan to install ORDS.
cd /db/oracle/apex/apex
[oradi@diatmlckidb01 apex]$ cp -rp images /db/oracle/ords/
[oradi@diatmlckidb01 apex]$ pwd
/u01/app/oradi/Apex/apex
[oradi@diatmlckidb01 apex]$ cd /db/oracle/ords/
[oradi@diatmlckidb01 ORDS]$ ls -lrt
drwxr-xr-x 32 oradi oinstall 40960 Nov 6 14:21 images
-rw-r--r-- 1 oradi oinstall 63211594 Nov 27 20:14 ords-19.2.0.199.1647.zip
#For validating the Oracle REST Data Services installation in a new installation or upgrade of Oracle APEX, run the following command:
java -jar ords.war validate [--database <dbname>]
Supported Java Version
Oracle REST Data Services requires Java 11 or 17. Java 8 is no longer supported. Please consult the documentation for the minimum supported Application Server versions for ORDS.
yum install java-latest-openjdk.x86_64
检查java 版本
find / -name java
/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-1.rolling.el7.x86_64/bin/java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment 21.9 (build 17.0.1+12)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12, mixed mode, sharing)
Take a backup of the existing jdk folder and copy openjdk-17.0.1.0 to ORACLE_HOME/.
11.
[oradi@diatmlckidb01 clone]$ cd /u01/app/oradi/DMLCKI/db/tech_st/11.2.0/
[oradi@diatmlckidb01 11.2.0]$ mv jdk jdk_old
[oradi@diatmlckidb01 11.2.0]$ cd
[oradi@diatmlckidb01 ~]$ cd clone/
[oradi@diatmlckidb01 clone]$ cp -rp java-17-openjdk-17.0.1.0.12-1.rolling.el7.x86_64 $ORACLE_HOME/
[oradi@diatmlckidb01 clone]$ cd $ORACLE_HOME/
[oradi@diatmlckidb01 11.2.0]$ mv java-17-openjdk-17.0.1.0.12-1.rolling.el7.x86_64 jdk
cd
vi .bash_profile
#add $ORACLE_HOME/jdk/bin in PATH
export PATH=$ORACLE_HOME/jdk/bin:$PATH
export APEX_HOME=/db/oracle/apex/apex
export ORDS_HOME=/db/oracle/ords
export ORDS_CONFIG=/db/oracle/ords
export TOMCAT_HOME=/db/oracle/apache-tomcat-8.5/apache-tomcat-8.5.85
export JAVA_OPTS="-Dconfig.url=${ORDS_CONFIG}"
[oracle@dbORA ~]$ java -version
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment 21.9 (build 17.0.1+12)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12, mixed mode, sharing)
cd /db/oracle/ords/
java -jar ords.war validate --database apex
提示如下: (java 命令过期了,使用ords 来配置)
Warning: Support for executing: java -jar ords.war has been deprecated.
Please add ords to your PATH and use the ords command instead.
Run the following command to add ords to your PATH:
echo -e 'export PATH="$PATH:/db/oracle/ords/bin"' >> ~/.bash_profile
Start a new shell to pick up this change.
2023-02-16T01:23:17.909Z INFO Your configuration folder /db/oracle/ords is located in ORDS product folder. Oracle recommends to use a different configuration folder.
ORDS: Release 22.4 Production on Thu Feb 16 09:23:17 2023
Usage:
ords [OPTIONS] [COMMAND]
Oracle REST Data Services command line interface
提示完成:
7. Copy images from APEX extracted folder to Tomcat webapps, and rename the folder from "images" to "i".
cp -Rp ${APEX_HOME}/images ${TOMCAT_HOME}/webapps
mv ${TOMCAT_HOME}/webapps/images ${TOMCAT_HOME}/webapps/i
8. Change Tomcat configuration to allow the Tomcat Manager console to be accessed outside of localhost.
vi ${TOMCAT_HOME}/webapps/manager/META-INF/context.xml
Comment out the <Valve> entry.
9. Change Tomcat configuration to create a user to access the Tomcat Manager console.
vi ${TOMCAT_HOME}/conf/tomcat-users.xml
Add the following entry:
<role rolename="manager-gui"/>
<user username="admin" password="welcome1" roles="manager-gui"/>
1Install ORDS
2.ip:10.241.134.49:1521
service:apex22_2
SQL> alter user system identified by welcome1;
[oracle@dbORA ~]$ cd ${ORDS_HOME}
[oracle@dbORA ords]$ ords install
3. You will be prompted with the following:
2023-02-16T06:45:38.416Z INFO Your configuration folder /db/oracle/ords is located in ORDS product folder. Oracle recommends to use a different configuration folder.
ORDS: Release 22.4 Production on Thu Feb 16 06:45:38 2023
Copyright (c) 2010, 2023, Oracle.
Configuration:
/db/oracle/ords/
The configuration folder /db/oracle/ords does not contain any configuration files.
Oracle REST Data Services - Interactive Install
Enter a number to select the type of installation
[1] Install or upgrade ORDS in the database only
[2] create or update a database pool and install/upgrade ORDS in the database
[3] create or update a database pool only
Choose [2]: 2
3. Select create or update a database pool and install/upgrade ORDS in the database.
4. Select Basic (host name, port, service name).
5. Enter your database information:
•Host name: dbhost
•Port: 1521
•Service name: servicename
6. Enter the SYS password.
7. Select Install ORDS in the database, which uses the SYSAUX and TEMP tablespaces (you can change the schemas if you want).
8. Select Database Actions (all features).
9. Select Configure and start ORDS in standalone mode.
10. Select HTTP protocol.
•HTTP port: 8080
•APEX static resources: /db/oracle/apache-tomcat-8.5/apache-tomcat-8.5.85/webapps/i
输出如下:
2023-02-16T07:16:46.493Z INFO Completed installation for Oracle REST Data Services version 22.4.3.r0331239. Elapsed time: 00:00:20.781
[*** Info: Completed installation for Oracle REST Data Services version 22.4.3.r0331239. Elapsed time: 00:00:20.781
]
2023-02-16T07:16:46.685Z INFO HTTP and HTTP/2 cleartext listening on host: 0.0.0.0 port: 8080
2023-02-16T07:16:46.705Z INFO Disabling document root because the specified folder does not exist: /db/oracle/ords/global/doc_root
2023-02-16T07:16:50.066Z INFO Configuration properties for: |default|lo|
db.servicename=apex22_2
standalone.context.path=/ords
db.hostname=dbORA
db.password=******
conf.use.wallet=true
security.requestValidationFunction=ords_util.authorize_plsql_gateway
standalone.static.context.path=/i
database.api.enabled=true
db.username=ORDS_PUBLIC_USER
standalone.http.port=8080
standalone.static.path=/db/oracle/apache-tomcat-8.5/apache-tomcat-8.5.85/webapps/i/
restEnabledSql.active=true
resource.templates.enabled=false
plsql.gateway.mode=proxied
db.port=1521
feature.sdw=true
config.required=true
db.connectionType=basic
standalone.doc.root=/db/oracle/ords/global/doc_root
2023-02-16T07:16:50.068Z WARNING *** jdbc.MaxLimit in configuration |default|lo| is using a value of 10, this setting may not be sized adequately for a production environment ***
2023-02-16T07:16:50.068Z WARNING *** jdbc.InitialLimit in configuration |default|lo| is using a value of 3, this setting may not be sized adequately for a production environment ***
2023-02-16T07:16:55.525Z INFO
Mapped local pools from /db/oracle/ords/databases:
/ords/ => default => VALID
2023-02-16T07:16:55.687Z INFO Oracle REST Data Services initialized
Oracle REST Data Services version : 22.4.3.r0331239
Oracle REST Data Services server info: jetty/10.0.12
Oracle REST Data Services java info: OpenJDK 64-Bit Server VM 17.0.1+12
输出完毕
11. create a database account for initial development and grant permissions:
create USER apex_dbcustom IDENTIFIED BY "welcome1";
GRANT resource, connect TO apex_dbcustom;
GRANT create dimension TO apex_dbcustom;
GRANT create job TO apex_dbcustom;
GRANT create materialized view TO apex_dbcustom;
GRANT create synonym TO apex_dbcustom;
GRANT create view TO apex_dbcustom;
alter user apex_dbcustom default tablespace apex_data;
grant unlimited tablespace to apex_mycustom;
Startup Tomcat
1. Copy the ORDS WAR file to Tomcat webapps.
cp ${ORDS_HOME}/ords.war ${TOMCAT_HOME}/webapps
2. Startup Tomcat.
cd ${TOMCAT_HOME}/bin
./startup.sh
3. Login to the APEX console as the INTERNAL workspace and user ADMIN.
•http://10.241.134.49:8080/ords/
Enter ADMIN's password [] db****
#Installing a Translated Version of APEX
cd $APEX_HOME/builder/zh-cn
NLS_LANG=American_America.AL32UTF8
export NLS_LANG
sqlplus / as sysdb
alter session set container = apex22_2;
@load_zh-cn.sql
第六步:创建第一个工作区(workspace)
选择“创建工作区”
依次输入工作区名字、方案名字、方案密码、空间限额和管理员密码。然后确认创建。
工具区名字:apex_2023
重用方案名apex_dbcustom
管理员用户密码 dbadmin/dbadmin123
第七步:创建APEX用户
apex_2023 dbadmin/dbadmin123
选择“管理” 、“管理用户和组”
选择“创建用户”。然后输入用户名、邮件地址、工作区、选择是否管理员和开发者,并输入密码。点击“创建用户”。
db/db2023
好了,用浏览器访问试试看。大功告成✌️✌️✌️
##################
附录1: error log:
[oracle@dbORA ords]$ ords install
2023-02-16T06:54:25.656Z INFO Your configuration folder /db/oracle/ords is located in ORDS product folder. Oracle recommends to use a different configuration folder.
Enter the database service name [apex22_2]:
Provide database user name with administrator privileges.
Enter the administrator username: sys
Enter the database password for SYS AS SYSdb:
Connecting to database user: SYS AS SYSdb url: jdbc:oracle:thin:@//dbORA:1521/apex22_2
Retrieving information.
PDB APEX22_2 - Error the ORDS_VERSION does not exist.
附录2:下载地址:
https://tomcat.apache.org/download-80.cgi
https://www.oracle.com/tools/ords/ords-relnotes-22.4.3.html
apex in oracle.com.cn
java 17 in yumlist
附录3:参考
Quickly installing APEX 22 and ORDS 22
Ahmed Aboulnaga
https://cloud.tencent.com/developer/news/389023
Install and configure Oracle APEX and ORDS
Manoj Singh | April 23, 2020
#########sample
参考文档 : 百度文库 《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 支持在单个数据库中托管大量用户。用户在一个称为工作区的专用工作区域中工作。这种灵活的体系结构使单个数据库实例可以管理数千个应用程序。
您可确定供应(或创建)工作区的过程的工作方式。在请求供应模式下,用户在登录页面上使用链接来请求一个工作区。工作区请求批准后,用户会收到一封包含链接的电子邮件,用户必须单击链接来验证其电子邮件地址的有效性。然后他们收到一封具有其登录凭据的电子邮件。