[学习笔记]Oracle Concepts
Oracle Concepts 11gr2是介绍oracle数据库的基础概念的入门书籍,学习这些概念方便于学习其他更深层次的知识。
第一章 Oracle数据库简介
DBMS:内核代码、数据字典、查询语言
关系模型
RDBMS
逻辑操作、物理操作
ORDBMS
Oracle简史:
1979年,Oracle V2;
1983年,Oracle V3;
1985年,Oracle V5;
1992年,Oracle7 ;
1997年,Oracle8 ;
1999年,Oracle8i
2001年,Oracle9i;
2003年,Oracle10g;
2007年,Oracle11g;
2013年,Oracle12c;
2018年,Oracle18c;
Schema Objects:表、索引等
PL/SQL
事物
事物的ACID特性:
Atomicity 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不会出现中间态
Consistency 一致性:锁机制,锁有助确保数据完整同时允许对数据的最大并发访问
Isolation 隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作
Durability 持久性:在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚
语句级读取的一致性
事务级读一致性
Oracle数据库架构:
1)instance 实例:pga、sga
2)database 数据库:Data Files、Control Files等
数据库物理存储结构:数据文件、控制文件、联机重做日志文件、归档日志文件、参数文件等
数据库逻辑存储结构:数据块、扩展区、段、表空间
数据库实例结构:内存和进程
数据库进程:客户端进程、后台进程、服务端进程
内存结构:SGA、PGA
监听:专用模式、共享模式
Oracle官方文档路线图:
基本组:Oracle Database 2 Day DBA,Oracle Database 2 Day Developer's Guide
中级组:数据库管理员Oracle Database 2 Day + Performance Tuning Guide、Oracle Database 2 Day + Real Application Clusters Guide、Oracle Database 2 Day + Data Warehousing Guide、Oracle Database 2 Day + Data Replication and Integration Guide、Oracle Database 2 Day + Security Guide 数据库开发Oracle Database 2 Day + Application Express Developer's Guide、Oracle Database 2 Day + Java Developer's Guide、Oracle Database 2 Day + .NET Developer's Guide for Microsoft Windows、Oracle Database 2 Day + PHP Developer's Guide
高级组:Oracle Database SQL Language Reference、Oracle Database Reference等。数据库管理员Oracle Database Administrator's Guide、Oracle Database Performance Tuning Guide、Oracle Database Backup and Recovery User's Guide、Oracle Real Application Clusters Administration and Deployment Guide,数据库开发人员Oracle Database Advanced Application Developer's Guide、Oracle Database PL/SQL Language Reference、Oracle Database PL/SQL Packages and Types Reference
第一部分 Oracle关系数据结构
第二章 表和表簇
Schema Object:表、索引、分区、视图、序列、维度、同义词、PL/SQL子程序和包
Schema
Schema Object存储、依赖
SYS模式存储数据字典基表和视图,其中的表只由数据库操作,绝不能被任何用户修改,sys:拥有dba、sysdba、sysoper(系统操作员 )角色或权限,是Oracle权限最高的用户,只能以sysdba或sysoper登录,不能以normal形式登录
SYSTEM模式存储其它一些用于显示管理信息的表和视图,以及用于各种数据库选项和工具的内部表和视图。 永远不要使用SYSTEM模式来存储非管理性用户的表,System:拥有dba、sysdba权限或角色,可以以普通用户的身份登录
示例模式
关系表 对象表 索引组织表 外部表
永久表 临时表
表定义:表名称和列属性,表可以包含虚拟列,不占用磁盘空间
create table,alter table
主键、外键、约束
域:行列的交叉点
Oracle数据类型:字符型(varchar2 char nchar nvarchar2)、数字型(NUMBER(p,s) BINARY_FLOAT BINARY_DOUBLE)、日期型(date)、rowid型、raw、大对象、集合等,PL/SQL 具有用于常量和变量的数据类型,包括布尔、 引用类型、 复合类型 (记录) 、和用户定义类型
yy日期和rr日期的不同处:rr日期考虑世纪
创建临时表CREATE GLOBAL TEMPORARY TABLE ON COMMIT子句指定表中的数据是特定于事务 (默认值),还是特定于会话。
与永久表类似,临时表被定义在数据字典中,临时表和他们的索引不会在创建时自动分配段。相反,临时段是在第一次插入数据时分配的
外部表 访问外部数据源中的数据如同此数据是在数据库中的表中一样 外部表对于在数据仓库环境中执行常见的ETL任务也是很有价值的,外部表的元数据描述了外部表层必须如何提供数据给数据库
CREATE TABLE ... ORGANIZATION EXTERNAL,外部表是只读的,除非它是使用 CREATE TABLE AS SELECT 和 ORACLE_DATAPUMP 访问驱动程序创建的。外部表有些限制,包括不支持索引列、 虚拟列、和列对象
外部表访问驱动程序 为数据库解释外部数据 ORACLE_LOADER(缺省)ORACLE_DATAPUMP
堆组织表
虚拟列
行存储
行片
行片Rowids
表压缩:基本/OLTP表压缩 可以在表空间、 表、 分区或子分区等级别声明压缩
空值存储
表簇:表簇是一组表,它们共享公共的列,并将相关的数据存储在相同的数据块中。当表被聚簇时,单个数据块可以包含多个表中的行
簇键是所有被聚簇的表的共有列或列集
簇键值是一组特定行的簇键列的值,包含相同簇键值的所有数据,物理上存储在一起,每个簇键值在簇或簇索引中只存储一次,而无论在这些不同表中有多少行包含这个值
如果多个表主要是被查询 (而不是修改) ,且各表中的记录是经常被一起查询或联接,在这些情况下可以考虑将他们聚簇化
索引化表簇:簇索引是一个簇键上的 B 树索引。簇索引必须先被创建,然后才能将行插入到簇表中
哈希簇:对一个哈希簇来说,数据本身就是索引
哈希簇变体:单表哈希簇 排序哈希簇
哈希簇存储
哈希冲突 :希簇检索效率会降低
第三章 索引和索引组织表
索引会降低dml性能
将索引变为不可用时候,数据库将删除其索引段
键和列
复合索引:前导列,最常被访问的列放在前面,顺序重要,若前导列基数低可能走索引跳跃扫描
唯一索引和非唯一索引
索引类型:B树索引、位图索引和位图连接索引、基于函数的索引、应用程序域索引
B-树索引 B-tree indexes:
平衡树简称B-树,用于查找的分支块和用于存储值的叶块
B-树索引之所以是平衡的,是因为所有叶块都自动处于相同的深度。因此,在索引中从任意位置检索任意记录需要的时间基本上是相同
在索引扫描中,数据库使用语句指定的索引列,通过遍历索引来检索行。数据库扫描索引,将使用n个I/O就能找到其要查找的值,其中 n 即是B-树索引的高度。这是数据库索引背后的基本原理
如果 SQL 语句仅访问被索引的列,那么数据库只需直接从索引中读取值,而不用读取表
完全索引扫描Full Index Scan
快速完全索引扫描Fast Full Index Scan:当索引包含了查询所需的所有列,且索引键中至少一列具有 NOT NULL 约束时,快速完全索引扫描可以替代全表扫描。
索引范围扫描Index Range Scan:是对索引的有序扫描,来访问选择性的数据
唯一索引扫描Index Unique Scan
索引跳跃扫描Index Skip Scan
索引聚簇因子Index Clustering Factor 用于测量相对于某个索引值(如雇员姓氏)的行顺序。被索引值的行存储得越有序,则聚簇因子越低。粗略测量通过索引读取整个表所需的I/O数
聚簇因子与索引扫描关系密切,因为它可以显示:数据库是否会在大范围扫描中使用索引,相对于索引键的表组织程度,如果行必须按索引键顺序排列,是否应考虑使用索引组织表、 分区、或表簇ALL_INDEXES
反向键索引:是一种B-树索引,解决了在 B-树索引右侧的的叶块争用问题,反向键格式丧失了执行索引范围扫描查询的能力
升序和降序索引
键压缩
位图索引Bitmap Indexes:数据库为每个索引键存储一个位图
位图索引并不适合许多 OLTP 应用程序
与B-树索引不同,位图索引可以包括完全由空值组成的键
位图联接索引Bitmap Join Indexes
位图存储结构:Oracle 数据库使用一个 B-树索引结构来为每个索引键存储位图
基于函数的索引:可以是一个 B-树索引或位图索引
应用程序域索引
索引组织表:索引即是数据,数据也是索引 非键列存在于索引叶块中
索引组织表将所有数据都存储在相同的结构中,且不需要存储 rowid
索引组织表的行溢出区:索引条目 溢出部分
索引组织表的辅助索引:是一个建立在索引组织表上的索引在某种意义上,它是一个索引的索引。辅助索引是一个独立的模式对象,并与索引组织表分开存储
由于插入操作,索引叶块中的行可以在块内或块之间移动。索引组织表中的行像堆组织表那样迁移行,因为索引组织表中的行并没有永久的物理地址,数据库使用基于主键的逻辑 rowids
逻辑Rowids和物理猜想:物理猜测,是索引条目第一次被创建时的物理 rowid
索引组织表上的位图索引 索引组织表中的行移动,不会使建立在该索引组织表上的位图索引变得不可用
第四章 分区、视图和其他模式对象
分区
分区键
范围分区、 列表分区、和哈希分区
分区索引
局部分区索引:局部前缀索引 局部非前缀索引
全局分区索引
分区索引组织表
视图
物化视图:用于计算、汇总、分发、复制数据 查询重写提高sql性能
刷新方法:快速刷新 完全刷新 物化视图日志
序列
维度和事实 CREATE DIMENSION
同义词:私有 公共
第五章 数据完整性
完整性约束
非空完整性约束NOT NULL
唯一性约束Unique Constraints
主键约束Primary Key Constraints
外键约束Foreign Key Constraints
检查性约束Check Constraints
第六章 数据字典和动态性能视图
数据字典,它是一组提供有关数据库管理元数据的只读表。
基表 视图
数据字典视图按集合分组,在许多的情况下,一个集合由三个包含相似信息的视图,并且彼此之间通过不同的前缀来区分
具有DBA_前缀的视图:显示在整个数据库中的所有相关信息
具有ALL_前缀的视图,是站在用户角度
具有USER _前缀的视图
DUAL表
数据字典表和视图都存储在SYSTEM表空间中
动态性能视图v$视图:系统和会话参数、 内存使用和分配、 文件状态(包括RMAN备份文件)、 工作和任务的进度、 SQL运行、 统计和度量
SYS拥有其名称以 V_$ 开头的动态性能表
动态性能视图基于这些表创建,然后在视图上创建以V$作为前缀的公共同义词
对几乎所有的 V$ 视图,都存在一个相应的GV$ 视图
由建表时候catalog.sql脚本创建
动态性能视图基于从数据库内存结构生成的虚拟表。因此,他们不是存储在数据库中的常规表。由于数据是动态更新的,所以不能保证视图的读一致性。
DBMS_METADATA 软件包提供了用于提取数据库对象的完整定义的接口
第二部分 Oracle数据访问
第七章 SQL
DDL
truncate 与delete不同,不生成回滚数据,不会调用删除触发器,直接降低高水位线,更快
形成一个逻辑工作单元的DML 语句的集合,称为一个事务
DML,DML 语句不会隐式提交当前事务
SELECT
联接类型:内连接、外连接、笛卡儿积
子查询和隐式查询
唯一不需要包括一个查询组件的 DML 语句,是带 VALUES 子句的INSERT 语句
事务控制语句:COMMIT,ROLLBACK,ROLLBACK TO SAVEPOINT,SAVEPOINT,SET TRANSACTION
ROLLBACK命令会结束一个事务,但ROLLBACK TO SAVEPOINT不会。
会话控制语句 ALTER SESSION
系统控制语句ALTER SYSTEM ALTER SYSTEM语句不会隐式提交当前事务
嵌入式的 SQL 语句:
定义、 分配、和释放游标 (DECLARE CURSOR, OPEN, CLOSE)
指定一个数据库,并连接到该数据库(DECLARE DATABASE, CONNECT)
分配变量名称 (DECLARE STATEMENT)
初始化描述符(DESCRIBE)
指定如何处理错误和警告(WHENEVER)
分析并运行 SQL 语句 (PREPARE, EXECUTE, EXECUTE,IMMEDIATE
从数据库中检索数据(FETCH
优化器:rbo cbo 查询转换器,估算器,计划生成器
选择性 基数 成本
EXPLAIN PLAN
访问路径:全表扫描、Rowid扫描、索引扫描、簇扫描、哈希扫描
优化器统计信息:
表统计 这包括行数、 块数、和平均行长等
列统计 这包括非重复值数目、空值数目、和数据的分布
索引统计 这包括叶块数目和索引级别
系统统计 这包括 CPU 和 I/O 的性能及利用率。
DBMS_STATS包可手动以修改、 查看、 导出、 导入、和删除统计信息
hint 如FIRST_ROWS(25)
SQL处理:解析、 优化、 产生行源、和执行
SQL解析:解析调用会打开或创建一个游标,它是一个对特定于会话的私有SQL区的句柄,游标和 私有SQL区位于PGA中:语法检查、语义检查、共享池检查 语句的哈希值即是在V$SQL.SQL_ID 中显示的 SQL ID,有别于该语句的内存地址、该语句的执行计划的哈希值
硬解析
软解析
库缓存命中
SQL优化:数据库对每个唯一的 DML 语句必须至少执行一次硬解析,并在解析期间执行优化。DDL 永远不会被优化,除非它包括需要优化的DML 组件,如子查询。
SQL 行源生成:行集 行源树
SQL执行
读一致性
第八章 服务器编程:PL/SQL和JAVA
PL/SQL 子程序
PL/SQL匿名块
变量和常量
游标
PL/SQL 允许您显式处理Exceptions
PL/SQL 集合和记录 ,PL/SQL 提供了TABLE和 VARRAY数据类型,使您能够声明关联数组、 嵌套表、和变长数组
JDBC驱动程序:JDBC Thin,JDBC OCI、JDBC server-side internal driver
触发器:行触发器、语句触发器、INSTEAD OF触发器、事件触发器
触发时间
复杂触发器
第三部分 Oracle事物管理
第九章 数据并发性和一致性
读取一致性
SCN
缓存融合Cache Fusion
读取一致视图
undo
当数据库为某个查询检索数据块时,数据库确保每个块中的数据反映了该查询开始时的内容。数据库根据需要回滚对数据块所做的更改,以将块重建到查询处理开始的状态
一致读取 (CR) 克隆
脏读 不可重复(模糊)读 幻像读
感兴趣事务列表 (ITL)
锁
事务隔离
标准隔离级别:
oracle事物隔离级别:Read Committed Isolation Level(默认)、Serializable Isolation Level、Read-Only Isolation Level
锁:独占锁、共享锁
锁持续时间
死锁
表锁 也称为 TM锁
行锁 也称TX锁
自动锁 DML 锁 DDL 锁 系统锁
手动数据锁
第十章 事物
事务是包含一个或多个 SQL 语句的逻辑的、 原子的工作单元
事务ID
ACID 属性:
原子性:事务中的所有任务,要么全部执行,要么都不执行。不存在部分完成的事务
一致性:事务会将数据库从一个一致状态变为另一个一致状态
隔离性:一个事务必须在被提交之后,其它事务才能看见其效果
持久性:已提交的事务所做的更改是永久性的
语句级原子性
系统更改号 (SCN) 是一个由 Oracle 数据库使用的逻辑、 内部的时间戳
事务名称 SET TRANSACTION ... NAME V$TRANSACTION
Active Transactions
Savepoints
排队事务
事务回滚
事务提交
自治事务
分布式事物
两阶段提交
可疑分布式事
第四部分 Oracle数据库存储结构
第十一章 物理存储结构
database实际由一系列数据库文件组成:数据文件、控制文件、联机重做日志文件等
ORacle ASM、操作系统文件系统、Raw device(裸设备)、Cluster file system
条带华、镜像、自动平衡数据
ASM磁盘组
ASM文件
ASM扩展区
ASM分配单元
ASM实例
SYSTEM、SYSAUX表空间是必须的
永久和临时数据文件
在 Linux 和 UNIX 等的文件系统上,临时文件被创建为稀疏文件。在这种情况下,磁盘块并不是在文件的创建或调整大小时分配的,而是在块第一次被访问时分配的
临时文件信息显示在数据字典视图 DBA_TEMP_FILES和动态性能视图 V$TEMPFILE中,但不在DBA_DATA_FILES或V$DATAFILE视图
联机和脱机数据文件
绝对文件号 相对文件号
碎片化的可用空间
控制文件:
数据库名称和数据库唯一标识符(DBID);
创建数据库的时间戳;
有关数据文件、 联机重做日志文件、和归档重做日志文件的信息;
表空间信息;
RMAN备份
多路复用控制文件从而避免单点故障
控制文件包括循环重用记录和非循环重用记录
联机重做日志:用于恢复的最关键结构是联机重做日志,它由两个或多个预分配文件组成,用于存储数据库发生的更改,联机重做日志文件使Oracle 数据库可以恢复已提交但尚未写入数据文件的数据。
联机重做日志切换
归档重做日志:只有在数据库处于归档模式下时才会归档
第十二章 逻辑存储结构
逻辑空间:数据库空间分配的逻辑单元是数据块、 扩展区、 段、和表空间
字典管理表空间、本地管理表空间的位图管理
自动段空间管理 (ASSM) 或手动段空间管理 (MSSM)
高水位线HWM
PCTFREE
以减少行迁移和避免浪费空间
rowid 并不物理地存储在数据库中,而是从存储数据的文件和块推导而来的
数据块压缩
增量扩展区
临时段
undo段
除非您手动重建、 截断、或缩小该对象,否则HWM 从不倒退
通过创建一个可传输表空间,可以将其从一个数据库复制或移动到另一个数据库,甚至跨平台
第五部分 Oracle实例体系结构
第十三章 Oracle数据库实例
数据库实例是一组用于管理数据库文件的内存结构,包括内存和进程
实例的持续时间:实例在使用STARTUP命令创建时开始,在终止时结束
Oracle 系统标识符 (SID)
实例启动过程:
1. 在特定于平台的默认位置搜索服务器参数文件,如果未找到 ,则搜索一个初始化参数文本文件(为STARTUP指定SPFILE 或 PFILE 参数将覆盖该默认行为)
2. 读取参数文件,以确定初始化参数值
3. 基于初始化参数设置,分配 SGA
4. 启动 Oracle 后台进程
5. 打开警报日志和跟踪文件,并以有效的参数语法将所有显式参数设置写入警报日志中
实力关闭:
检查点 CKPT
实例恢复可确保数据库在一个实例失败后仍能回到一个一致的状态
崩溃恢复
实例恢复阶段:前滚、回滚(事务恢复)
参数文件
初始化参数
初始化参数可以分为两组: 基本的和高级的。在大多数的情况下,你只需设置和调整大约 30个基本参数,就可以获得还不错的性能。基本参数设置的特性包括数据库名称、控制文件的位置、数据库的块大小、和撤消表空间等,在某些情况下,为获得最佳性能,可能需要修改高级参数。启用高级参数可以使专家级DBA能够调整 Oracle 数据库以满足某些特殊需求
服务器参数文件、文本初始化参数文件
静态和动态初始化参数
动态参数可分为会话级参数和系统级参数
SCOPE=MEMORY、SCOPE=SPFILE、SCOPE=BOTH
诊断文件
自动诊断存储库 (ADR)
ADR结构
Alert Log 告警日志
Trace Files 跟踪文件
转储
AWR
第十四章 内存体系结构
内存结构:PGA、UGA、SGA
Oracle 数据库内存管理:自动内存管理、自动共享内存管理、手工内存管理
UGA 是为会话变量分配的会话内存
OLAP 页面缓冲池
PGA 是特定于一个操作系统进程或线程的内存区,且不和系统上的其他进程或线程共享
SGA 是一个可读写的内存区,与 Oracle 后台进程一起组成数据库实例 V$ SGASTAT:
数据库缓冲区高速缓存;
重做日志缓冲区;
共享池:
大池;
Java池;
流池;
固定SGA
缓冲区触摸计数
LRU 列表
如果某个缓冲区是在LRU 的冷端上,但其触摸计数很高,则该缓冲区将移动到热端。如果触摸计数很低,则缓冲区将从缓存中老化移出
第十五章 进程体系结构
在Linux上的一个Oracle 后台进程是一个Linux 进程。而在 Windows 上的一个 Oracle 后台进程是在某个进程内执行的一个线程:
客户端进程、Oracle 进程(后台进程、服务器进程)
专用服务器进程、共享服务器进程
强制性后台进程:
进程监视器进程 (PMON)
系统监视器进程(SMON)
数据库写入器进程(DBWn)
日志写入器进程(LGWR)
检查点进程(CKPT)
可管理性监视器进程(MMON and MMNL)
恢复器进程(RECO)
可选后台进程:归档器进程(ARCn)、作业队列进程 (CJQ0 和 Jnnn)、闪回数据存档器进程 (FBDA)、空间管理协调器进程 (SMCO)、I/O 从属进程、并行查询从属进程等
第十六章 应用程序和网络体系结构
Oracle 网络服务是一套网络组件,在分布式的异构计算环境中,提供企业范围的连接解决方案
Oracle 数据库协议从 Oracle 应用程序接口接受 SQL 语句,并将其打包,以便通过一个受行业标准支持的更高级别协议或 API传输到 Oracle 数据库。从Oracle 数据库返回的结果会使用同样高度级别的通信机制打包
Oracle 网络监听器
服务注册
服务名
专用服务器体系结构
共享服务器体系结构
Dispatcher分派器
分派器进程(Dnnn)
共享服务器进程 (Snnn)
数据库驻留连接池 (DRCP)
DRCP 使用池化服务器,这相当于一个专用服务器进程 (而不是共享服务器进程) 和数据库会话的联合体
第六部分 Oracle数据库管理与开发
第十七章 数据库管理员和开发人员的主题
Profiles概要文件
身份验证:通过数据库进行身份验证、通过操作系统进行身份验证
加密
网络加密
透明数据加密
审计
细粒度审计
OEM
HA 高可用
高可用性和计划外停机时间
站点故障、计算机故障、存储故障、数据损坏、人为错误
RAC
网格计算
可扩展性
容错能力
数据仓库和商业智能 bi edw
数据仓库和OLTP
ETl
分析型SQL:聚合SQL、分析SQL、建模函数
OLAP
数据挖掘
dblink
Oracle流复制
第十八章 数据库管理员相关概念
Oracle 数据库管理员负责了解 Oracle 数据库体系结构和数据库的工作方式。数据库管理员可能需要执行下列任务:
安装、 升级、和修补 Oracle 数据库软件
设计数据库,包括确定需求、创建逻辑设计 (概念模型) 、和物理数据库设计
创建Oracle数据库
开发和测试备份和恢复策略,定期备份Oracle 数据库,并在发生故障的情况下恢复它们
配置网络环境,使客户端能连接到数据库
启动和关闭数据库
管理数据库存储
管理用户和安全
管理数据库对象,如表、 索引、和视图
监视和优化数据库性能
针对任何严重的数据库错误,进行调查、 收集诊断数据、并报告给 Oracle 支持服务
评价和测试新的数据库功能
数据库管理员的工具:OEM、SQL*Plus、数据库安装和配置工具(Oracle 通用安装程序 (OUI)、数据库升级助手 (DBUA)、数据库配置助手 (DBCA))、Oracle 网络配置和管理工具(Oracle网络管理器、Oracle 网络配置助理、监听器控制实用程序、Oracle 连接管理器控制实用程序)、数据移动和分析工具(sqlldr、logminer、adrci等)
RMAN
备份
恢复
数据修复(介质故障、用户错误)
Oracle闪回技术
完全恢复、不完全恢复
内存管理
资源管理与任务调度
性能诊断和调优
自动工作负载存储库 (AWR)
AWR 基线
自动数据库诊断监视器 (ADDM)
活动会话历史 (ASH)
SQL 优化
SQL Access Advisor
SQL profile
第十九章 数据库开发人员相关概念
Oracle 数据库开发人员可能涉及以下任务:
实现应用程序所需的数据模型
创建模式对象并实施数据完整性规则
为一个新的开发项目选择编程环境
编写服务器端 PL/SQL 或 Java 子程序,和客户端使用的SQL 语句的程序代码
使用所选择的开发工具创建应用程序接口
为开发全球化应用程序建立全球化支持环境
为开发、 测试、 培训等,在不同的数据库中实例化应用程序,并在生产环境中部署
工具:SQL Developer、Oracle 应用程序快速开发工具 (APEX)、Oracle JDeveloper、Oracle JPublisher、Oracle 开发工具for Visual Studio.NET
OCI和OCCI
ODBC and JDBC
JDBC瘦驱动程序
JDBC OCI驱动程序
全球化支持环境
NLS
Oracle 全球化开发工具包 (GDK)
非结构化数据 Oracle XML DB
lob
上一篇: 淋病的原因和解决方法 淋病怎么治疗好
下一篇: python爬取个性签名的方法