49
<在此处插入图片> Oracle Database 11g 数据库应用程序开发 韩锷春 甲骨文大中华区开发者计划 高级经理

Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

  • Upload
    lydien

  • View
    320

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

<在此处插入图片>

Oracle Database 11g — 数据库应用程序开发

韩锷春

甲骨文大中华区开发者计划 高级经理

Page 2: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

2

以下内容旨在概述产品的总体发展方向。该内容仅供

参考,不可纳入任何合同。该内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。

所描述的有关 Oracle 产品的任何特性或功能的开发、

发布和时间安排均由 Oracle 自行决定。

Page 3: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

3

议题

数据库开发特性

数据库缓存技术

数据管理

部署

应用程序开发

工具和框架

Page 4: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

4

SQL 关系数据库语言

• 高效

– 简单的语法:SELECT、INSERT、UPDATE、DELETE、DROP、ALTER、GRANT

– 基于集的语言 — 无需编写迭代代码

– 可使用联接轻松实现数据集关联

• 分离逻辑部分与物理部分

– 数据独立性 — 无需对物理引用进行编码

– 优化器 — 无需指定访问方法

• 功能

– 事务隔离和控制

– 行级锁定和并发性

– 多版本读取一致性

– 引用完整性

– 存储过程和触发器

Page 5: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

5

PL/SQL Oracle 数据库存储过程语言

• 用于触发器、函数、过程、程序包、匿名块

• 强健的 4GL 语言, SQL 原生支持

• 对实现中的不同规格进行打包,以便于开发 API

• 在所有操作系统上以相同的方式运行

• 可以从 SQL 查询调用 PL/SQL 函数

• 易于学习:If then else、variables、cursor

loops……

• 原生编译

Page 6: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

6

PL/SQL 使用 PL/SQL 程序包开发数据 API

Page 7: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

7

PL/SQL 使用PL/SQL 层级分析器找出热点

• 查看哪些对象占用了 CPU 时间

• 层级分析器显示上下文

• 使用 DBMS_HPROF.START_PROFILING 调用

被调用者 占用时间 合计

OE_API 3,011 595,781

get_order 8,605 592,712

get_order static SQL line 12 7,159 7,159

get_order static SQL line 57 576,948 576,948

place_order 58 58

place_order static SQL line 207 0 0

Page 8: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

8

基于版本的重新定义 联机应用程序升级

• 允许多个版本同时可用

• 以对应用程序透明的方式编译版本对象

• 可以对视图、同义词和 PL/SQL 对象进行版本操作

Page 9: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

9

基于版本的重新定义 联机应用程序升级

在新版本中编译对象,而不影响在线用户

部署将引用新版本的新应用程序版本

当前用户不受影响,他们引用基础版本

逐步引入新应用程序版本

1

2

3

4

Page 10: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

10

XML DB 在 Oracle 数据库中管理 XML 内容

• 在 Oracle 11g 中整合关系数据和 XML 数据的存储

• 本地存储 XML 内容

– XMLTYPE 列

– XML 表

– 用于快速访问的 XML 索引

• 卸载关系数据到 XML

• 使用 XML 标准,包括 XQuery

和 XML 模式

Page 11: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

11

XML DB — 示例 查询 XMLType 列中的 XML 数据

select xtab.year, d.dname, xtab.actual, xtab.estimate

from WWV_DEMO_DEPT d,

XMLTable ('/Budget/History/Budget'

passing BUDGET COLUMNS

YEAR VARCHAR2(4) PATH 'Year',

ESTIMATE NUMBER(20) PATH 'Estimate',

ACTUAL NUMBER(20) PATH 'Actual') xtab

Year Department Estimate Actual

2010 Accounting 570,000 560,000

2010 Operations 255,000 265,000

2009 Accounting 540,000 555,000

2009 Operations 240,000 242,000

Page 12: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

12

SQL 分析 业界内最完整的实施方案

• 排名函数

• 窗口聚合

函数

• LAG/LEAD 函数

• 报告聚合

函数

• 统计聚合

• 线性回归

SQL 分析

• 描述统计

• 相关性

• 交叉表

• 假设检验

• 分布拟合

统计

Page 13: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

13

SQL 分析 — 示例 列举 Group By 列的值

select deptno,

listagg( ename, '; ' )

within group(order by ename)

as department_employees

from emp

group by deptno

DEPTNO DEPARTMENT EMPLOYEES

10 CLARK; KING; MILLER

20 ADAMS; FORD; JONES; SCOTT; SMITH

30 ALLEN; BLAKE; JAMES; MARTIN; TURNER;

WARD

Page 14: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

14

SQL 分析 — 示例 引用前面行的值

select application,

to_char(run_date,’day’) run_date,

rows_processed,

rows_processed - lag(rows_processed, 1, 0)

over(order by rows_processed )as difference

from application_log

order by run_date

Application Run Date Rows Processed Difference

Daily Load Monday 850 0

Daily Load Tuesday 875 25

Daily Load Wednesday 860 -15

Daily Load Thursday 890 30

Daily Load Friday 900 10

Page 15: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

15

SQL Pivot 将行旋转为列,反之亦然

• 创建聚合的交叉表格结果集

• 将多列计算为一列的筛选汇总

• 新语法 PIVOT 和 UNPIVOT

PROD QUARTER AMOUNT

Shoes Q1 2000

Shoes Q2 1000

Jeans Q1 1000

Jeans Q3 500

Jeans Q3 100

Jeans Q4 1000

PROD Q1 Q2 Q3 Q4

Shoes 2000 1000 Null Null

Jeans 1000 Null 600 1000

select * from sales

pivot

(sum(amount)

for quarter in

‘Q1’,’Q2’,’Q3’,’Q4’);

Page 16: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

16

Oracle Database JVM 用 Java 编写数据库存储过程

• 加载数据库中的 Java 并通过 PL/SQL 提供

– 利用原生和开源 Java 功能

– 在最有用的位置运行 Java

– 提供 PL/SQL 的非原生功能

– 补充在中间层部署的 Java

• 提高数据密集型 Java 的性能

• 利用 Java 技能

• Oracle Database 11gR1 中的新增功能

– JIT 编译器

– Java Management Extensions (JMX)

Page 17: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

17

Oracle Database JVM 用 Java 编写数据库存储过程

Create or replace public class Hello

{

static public void world()

{

System.out.println("Hello World");

return; }

}

/

create or replace procedure hello

as language java

name ‘Hello.world()’;

Page 18: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

18

议题

数据库开发特性

数据库缓存技术

数据管理

应用程序开发

工具和框架

Page 19: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

19

数据库缓存技术

• SQL 结果集缓存

– 缓存查询和子查询

– 由所有会话共享

– 完全的一致性和正确的语义

– 速度提高 2-100 倍

• PL/SQL 函数缓存

– 自动失效

– 由所有会话共享

– 用于确定性函数

Page 20: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

20

SQL 结果集缓存 查询批注和 ALTER TABLE 语法

查询批注语法

表级结果集缓存

select /*+ result_cache */

ename, job

from employees where deptno in (10,30,40);

alter table employees result_cache (mode force);

Page 21: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

21

PL/SQL 函数缓存示例

CREATE FUNCTION format_name (

p_first_name IN VARCHAR2,

p_last_name IN VARCHAR2)

RETURN VARCHAR2

RESULT_CACHE

IS

v_name VARCHAR2(4000)

BEGIN

RETURN p_first_name || ' ' || p_last_name;

END format_name;

Page 22: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

22

数据库缓存技术

• 客户端结果缓存

– 推荐用于读取频繁的小型表

– CPU 使用率降低 85%

– 响应时间为原来的 15% 到 20%

– 通过设置 init.ora 参数

调用

• 数据库智能缓存

– 扩展 SGA 缓冲区缓存

– 智能数据库缓存

– 仅适用于 Solaris 和 Oracle

Enterprise Linux

Page 23: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

23

TimesTen In-Memory Database Cache 用于实时应用的内存中 RDBMS

• 快速、一致的低延迟响应

– 标准 SQL 和 PL/SQL

– 缓存读/写子集;表、行、列

• 自动与 Oracle 数据库同步

• 内置的高可用性 (HA) 和数据持久性

• 横向扩展缓存网格

应用:金融/电信服务、Web 门户、CRM

Page 24: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

24

TimesTen In-Memory Database Cache 灵活的缓存组配置

使用事务支持实现完全关系访问。

CREATE Asynchronous

Writethrough Cache Group

custCache FROM customer (

cust_id

(number(10,0), ..

) , acct ( acct_id, ..,

foreign key (cust_id)

, orders (..);

Page 25: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

25

议题

数据库开发特性

数据库缓存技术

数据管理

应用程序开发

工具和框架

Page 26: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

26

Advanced Compression 选件 显著减少数据量

• OLTP 和 DW 解决方案均可从中受益

• 对应用程序透明并且对所有数据类型有效

• EBS 查询的运行速度提高 250%

• DML 操作速度减慢 3%

无压缩 OLTP 数据仓储 存档

Page 27: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

27

Advanced Compression 语法示例

CREATE TABLE employees(

emplyee_id NUMBER,

first_name VARCHAR2(50),

last_name VARCHAR2(50)

) COMPRESS FOR OLTP;

Page 28: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

28

Oracle SecureFiles 高性能大型对象存储

• 显著改进性能

– 性能相当于或高于文件系统

• 压缩

• 重复数据删除

• 加密

• 与现有 Oracle BLOB/CLOB 语法兼容

• 压缩和重复数据删除功能需要 Advanced

Compression 选件

Page 29: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

29

Oracle SecureFiles 压缩和重复数据删除

CREATE TABLE images (

image_id NUMBER,

image BLOB)

LOB(image)

STORE AS SECUREFILE ( TABLESPACE lob_tbs COMPRESS);

Page 30: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

30

Oracle 分区 透明地提高性能和可管理性

• 使用分区消除功能提高查询的性能

• 更易于备份和恢复分区数据

• 对使用较少的分区采用成本较低的存储

按列

分区

组合

分区

大型表

Page 31: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

31

Oracle 分区 结合压缩和分区

• 最大限度地提高使用频率较高的数据的性能

• 提高压缩率,并对使用频率较低的分区采用成本较低的存储

Page 32: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

32

闪回 闪回、闪回数据归档

• 闪回:查询、表、表空间、事务、数据库

• 基于重做保留的可用闪回

• 闪回数据存档提供了无限的闪回,需要 Total Recall 选件

Page 33: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

33

闪回示例 闪回查询某个时间点

select *

from employees

as of timestamp

to_timestamp('2003-04-04 09:30:00',

'yyyy-mm-dd hh:mi:ss')

where name = :b1;

Page 34: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

34

议题

数据库开发特性

数据库缓存技术

数据管理

应用程序开发

工具和框架

Page 35: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

35

Oracle 支持所有流行

的应用开发框架

Page 36: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

36

Oracle SQL Developer Oracle 数据库的免费 IDE

• 轻型的图形化用户界面

– 提高数据库开发产能

– 浏览、创建、编辑、调试和制作报表

– 集成的迁移功能

• 易于安装

– 下载并解压缩

– 使用 JDBC 瘦型驱动程序 => 无需 Oracle 主目录

• 免费、可扩展并且受到完全支持

– 150 万用户

– Oracle 数据库支持的特性

Page 37: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

37

Oracle SQL Developer Oracle 数据库的免费 IDE

数据库开发 数据库数据建模

PL/SQL 单元测试 数据库迁移 从第三方数据库

Page 38: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

38

Java 世界上最受欢迎的编程平台

Page 39: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

39

Oracle 和 Java

• Oracle 领导 Java 社区

• Oracle 普遍使用 Java

– 应用程序

– 中间件

– 数据库

– 开发工具

Page 40: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

40

Java 开发工具 为 Java 开发社区提供了三种工具

• Eclipse

– 基于核心 Eclipse 的认证插件

– 专注于 Java 编码

– EJB/JPA、Spring、WebServices、WebLogic

• NetBeans

– Java FX 开发人员使用的 IDE

– 支持 Java EE 6.0、Java FX 和 Java ME

– 面向社区

• Oracle Jdeveloper 11gR1

– 融合中间件开发人员使用的 IDE

– Oracle ADF 的开发平台

– 可视化、声明式、WYSIWYG

Page 41: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

41

JDBC 和 UCP 高效、可伸缩且可靠的 Java 持久性

• 通过 Oracle JDBC 11g 实现高效 Java 持久性

– JDBC 4.0、IPV6

– JDBC-Thin 中内置了 Advanced Security

– 支持查询更改通知

– 结果缓存 (JDBC-OCI):速度提高 5-8 倍

– 原生 AQ 接口:速度提高 40-300%

– LOB PreFetch,无需复制 SecureFiles LOB

• 通过通用连接池实现可伸缩、

• 可靠的 Java 持久性

– 快速连接故障切换(RAC、Data Guard)

– 运行时连接负载平衡

– Web 会话亲和性

– 事务亲和性

Page 42: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

42

Oracle Application Express (APEX)

• 以数据库为中心的 Web 应用程序开发工具

• Oracle 数据库的免费选件

– 随数据库 10gR2、11gR1、11gR2 和 XE

– OTN 上提供最新版本

Page 43: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

43

Oracle Application Express (APEX)

基于浏览器的快速开发 利用 SQL 技能

在数据库内运行 自助式供应

Page 44: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

44

Oracle 对 .NET 的支持

• 全面支持 .NET 和 Visual Studio

– 相同的 API,相同的工具

– 易于学习,易于迁移

– 免费提供

• 全面支持 Oracle 数据库

– 可运行 Oracle 数据库的所有版本

– Real Application Clusters (RAC)

– Data Guard、数据类型……

– 可在任何地方运行 Oracle 数据库

• Linux

• Unix(Sun、IBM、HP)

• Microsoft Windows

Page 45: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

45

Oracle 对 .NET 的支持

Page 46: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

46

Oracle 的开源语言驱动程序

• 使用 Oracle 数据库构建

• 敏捷的 Web 应用程序

• 通过数据库驻留连接池 (DRCP) 获得连接可伸缩性

• PHP OCI8

– 在 php.net, PECL、Zend Server、Unbreakable Linux Network 以及

http://oss.oracle.com/projects/php 上提供

• Ruby OCI8

– http://ruby-oci8.rubyforge.org/en/

• Python Cx-Oracle

– http://cx-oracle.sourceforge.net

• Perl DBD::Oracle

– http://search.cpan.org/~pythian/DBD-

Oracle-1.23/Oracle.pm

Page 47: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

47

Oracle Database 11g 挖掘 Oracle 数据库的全部潜能

Page 48: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

48

Page 49: Oracle Database 11g 数据库应用程序开发download.oracle.com/otndocs/tech/cn/Keynote_OTNVDD_DB_cn.pdf · 所描述的有关 Oracle 产品的任何特性或功能的开发、

49