logo资料库

人大金仓数据库v8开发手册.pdf

第1页 / 共634页
第2页 / 共634页
第3页 / 共634页
第4页 / 共634页
第5页 / 共634页
第6页 / 共634页
第7页 / 共634页
第8页 / 共634页
资料共634页,剩余部分请下载后查看
开发手册
约定
Part I. 快速入门
数据库开发指南
前言
1. 编程接口及标准符合性
2. 应用开发框架
3. 应用开发工具
Part II. 服务器编程
触发器
1. 概述
1.1. 触发器及其作用
1.2. 触发器分类
1.3. 触发器函数
2. 表级触发器
2.1. 概述
2.2. 表级触发器的数据可见性
2.3. 表级触发器的创建
2.4. 表级触发器的修改
2.5. 表级触发器的删除
2.6. 表级触发器的禁止和开启
2.7. 表级触发器使用示例
3. 事件触发器
3.1. 概述
3.2. 事件触发器触发矩阵
3.3. 事件触发器的创建
3.4. 事件触发器的修改
3.5. 事件触发器的删除
3.6. 事件触发器使用示例
规则系统
1. 查询树
2. 视图和规则系统
2.1. SELECT规则如何工作
2.2. 非SELECT语句中的视图规则
2.3. KingbaseES中视图的能力
2.4. 更新一个视图
3. 物化视图
4. INSERT、UPDATE和DELETE上的规则
4.1. 更新规则如何工作
4.1.1. 第一个规则循序渐进
4.2. 与视图合作
5. 规则和权限
6. 规则和命令状态
7. 规则 vs 触发器
PL/SQL 开发技巧
1. 引号的处理
2. 额外的编译检查
Oracle PL/SQL 移植
1. 移植示例
1.1. 包的移植示例
1.2. 函数的移植示例
1.3. 附录
2. 其它注意事项
2.1. 发生异常后隐式回滚
Part III. 客户端编程
ESQL - C 中的嵌入式 SQL
1. 概念
2. 管理数据库连接
2.1. 连接到数据库服务器
2.2. 选择一个连接
2.3. 关闭一个连接
3. 运行 SQL 命令
3.1. 执行 SQL 语句
3.2. 使用游标
3.3. 管理事务
3.4. 预备语句
4. 使用主变量
4.1. 概述
4.2. 声明小节
4.3. 检索查询结果
4.4. 类型映射
4.4.1. 处理字符串
4.4.2. 访问特殊数据类型
4.4.3. 非简单类型的主变量
4.5. 处理非简单 SQL 数据类型
4.5.1. 数组
4.5.2. 组合类型
4.5.3. 用户定义的基础类型
4.6. 指示符
5. 动态 SQL
5.1. 执行没有结果集的语句
5.2. 执行一个有输入参数的语句
5.3. 执行一个有结果集的语句
6. kbtypes 库
6.1. numeric类型
6.2. 日期类型
6.3. 时间戳类型
6.4. 区间类型
6.5. decimal类型
6.6. ectypeslib 的 errno 值
6.7. ectypeslib 的特殊常量
7. 使用描述符区域
7.1. 命名 SQL 描述符区域
7.2. SQLDA 描述符区域
7.2.1. SQLDA 数据结构
7.2.2. 使用一个 SQLDA 检索一个结果集
7.2.3. 使用一个 SQLDA 传递查询参数
7.2.4. 一个使用 SQLDA 的应用例子
8. 错误处理
8.1. 设置回调
8.2. sqlca
8.3. SQLSTATE 与 SQLCODE
9. 预处理器指令
9.1. 包括文件
9.2. define 和 undef 指令
9.3. ifdef、ifndef、else、elif 以及 endif 指令
10. 处理嵌入式 SQL 程序
11. 库函数
12. 大对象
13. C++ 应用
13.1. 主变量的可见范围
13.2. 使用外部 C 模块的 C++ 应用开发
14. 嵌入式 SQL 命令
14.1. ALLOCATE DESCRIPTOR
14.1.1. 名称
14.1.2. 大纲
14.1.3. 描述
14.1.4. 参数
14.1.5. 例子
14.1.6. 兼容性
14.1.7. 参见
14.2. CONNECT
14.2.1. 名称
14.2.2. 大纲
14.2.3. 描述
14.2.4. 参数
14.2.5. 例子
14.2.6. 兼容性
14.2.7. 参见
14.3. DEALLOCATE DESCRIPTOR
14.3.1. 名称
14.3.2. 大纲
14.3.3. 描述
14.3.4. 参数
14.3.5. 例子
14.3.6. 兼容性
14.3.7. 参见
14.4. DECLARE
14.4.1. 名称
14.4.2. 大纲
14.4.3. 描述
14.4.4. 参数
14.4.5. 例子
14.4.6. 兼容性
14.4.7. 参见
14.5. DESCRIBE
14.5.1. 名称
14.5.2. 大纲
14.5.3. 描述
14.5.4. 参数
14.5.5. 例子
14.5.6. 兼容性
14.5.7. 参见
14.6. DISCONNECT
14.6.1. 参见
14.6.2. 大纲
14.6.3. 描述
14.6.4. 参数
14.6.5. 例子
14.6.6. 兼容性
14.6.7. 参见
14.7. EXECUTE IMMEDIATE
14.7.1. 名称
14.7.2. 大纲
14.7.3. 描述
14.7.4. 参数
14.7.5. 例子
14.7.6. 兼容性
14.8. GET DESCRIPTOR
14.8.1. 名称
14.8.2. 大纲
14.8.3. 描述
14.8.4. 参数
14.8.5. 例子
14.8.6. 兼容性
14.8.7. 参见
14.9. OPEN
14.9.1. 名称
14.9.2. 大纲
14.9.3. 描述
14.9.4. 参数
14.9.5. 例子
14.9.6. 兼容性
14.9.7. 参见
14.10. PREPARE
14.10.1. 名称
14.10.2. 大纲
14.10.3. 描述
14.10.4. 参数
14.10.5. 例子
14.10.6. 兼容性
14.10.7. 参见
14.11. SET AUTOCOMMIT
14.11.1. 名称
14.11.2. 大纲
14.11.3. 描述
14.11.4. 兼容性
14.12 SET CONNECTION
14.12.1. 名称
14.12.2. 大纲
14.12.3. 描述
14.12.4. 参数
14.12.5. 例子
14.12.6. 兼容性
14.12.7. 参见
14.13. SET DESCRIPTOR
14.13.1. 名称
14.13.2. 大纲
14.13.3. 描述
14.13.4. 参数
14.13.5. 描述
14.13.6. 兼容性
14.13.7. 参见
14.14. TYPE
14.14.1. 名称
14.14.2. 大纲
14.14.3. 描述
14.14.4. 参数
14.14.5. 例子
14.14.6. 兼容性
14.15. VAR
14.15.1. 名称
14.15.2. 大纲
14.15.3. 描述
14.15.4. 参数
14.15.5. 例子
14.15.6. 兼容性
14.16. WHENEVER
14.16.1. 名称
14.16.2. 大纲
14.16.3. 描述
14.16.4. 参数
14.16.5. 例子
14.16.6. 兼容性
15. Informix兼容模式
15.1. 附加类型
15.2. 附加的/缺少的 嵌入式 SQL 语句
15.3. Informix-兼容的 SQLDA 描述符区域
15.4. 附加函数
15.5. 额外的常量
16. 内部
ODBC指南
1. 概述
2. 运行环境
3. ODBC特性支持限制
3.1. 系统边界值
3.2. 其他限制
3.2.1. 表中的列类型到C数据类型的转换表
3.2.2. C数据类型到SQL数据类型的转换表
3.2.3. 表中的列类型到SQL数据类型的映射表
4. 创建数据源
4.1. 在Windows中创建KingbaseES ODBC数据源
4.2. 在 Linux 中创建 KingbaseES 的 ODBC 数据源
5. 开发过程
6. KingbaseES ODBC 的扩展属性
7. 示例说明
7.1. 常用的 ODBC 连接串
7.2. 字典函数的应用
7.3. 绑定参数为 BLOB 值
7.4. 获取BLOB列的值
8. 疑难解答
JDBC指南
1. 概述
1.1. KingbaseES JDBC 描述
1.2. 操作过程
1.3. 获取 KingbaseES JDBC Driver 版本信息
2. JDBC 建立/关闭连接
2.1. 使用 DriverManager 连接数据库
2.2. JDBC连接属性
2.3. 使用 DataSource 连接数据库
2.3.1. 使用 DataSource 连接数据库(上使用JNDI)
2.3.2. 使用 DataSource 连接数据库(使用 JNDI)
2.3.3. 连接池
2.4. 关闭与数据库的连接
2.5. JDBC Driver API
2.6. JDBC Connection API
2.7. JDBC DataSource API
2.8. JDBC ConnectionPoolDataSource API
2.9. JDBC PooledConnection API
2.10 JDBC XAConnection API
2.11. JDBC XADataSource API
3. JDBC 创建语句对象
3.1. Statement 对象
3.2. PreparedStatement 对象
3.3. CallableStatement对象
3.4. JDBC Statement API
3.5. JDBC PreparedStatement API
3.6. JDBC CallableStatement API
4. JDBC 查询结果集处理
4.1. 结果集的读取
4.2. 对结果集的更新
4.3. JDBC ResultSet API
5. JDBC 大对象数据处理
5.1. 大对象数据的读取
5.2. 大对象数据的更新
5.3. JDBC Blob API
5.4. JDBC Clob API
5.5. JDBC SQLXML API
6. JDBC事务处理
6.1. 事务的提交与回滚
6.2. 事务的隔离级别
6.3. JDBC Savepoint API
7. JDBC 元数据处理
7.1. 数据库元数据
7.2. 参数元数据
7.3. 结果集元数据
7.4. JDBC Databasemetadata API
7.5. JDBC ParameterMetaData API
7.6. JDBC ResultSetMetaData API
8. JDBC 读写分离
8.1. 使用读写分离功能
8.2. 读写分离一些现象分析
9. JDBC 实例说明
9.1. DataSource 示例
9.2. ConnectionPooling 示例
9.3. Statement 示例
9.4. PreparedStatement 示例
9.5. CallableStatement 示例
9.6. ResultSet 示例
9.7. BLOB 示例
9.8. CLOB 示例
9.9. Transaction 示例
9.10. DatabaseMetadata 示例
10. 在应用服务器中配置JDBC
10.1. WebSphere5.1
10.2. Weblogic7.0
10.3. Tomcat
Hibernate指南
1. 概述
2. Hibernate 安装说明
2.1. 原理简述
2.2. 配置说明
2.3. 举例说明
3. Hibernate注意事项
MyBatis指南
1. 概述
2. MyBatis配置说明
3. MyBatis注意点
Perl DBI指南
1. 概述
2. DBI 类
2.1. DBI 类方法
2.2. 句柄的通用属性
3. DBI 数据库句柄对象
3.1. 数据库句柄方法
3.2. 数据库句柄方法
4. DBI 语句句柄对象
4.1. 语句句柄方法
4.2. 语句句柄属性
5. 示例
5.1. 示例
PHP PDO指南
1. 概述
2. PHP配置连接KingbaseES
2.1. Linux 下 PHP 配置
3. PDO使用说明
3.1. PDO标准模块
3.2. KingbaseES函数(PDO_KDB)
4. PDO示例
ADO.NET 指南
1. 概述
1.1. KingbaseES .NET Data Provider 概述
1.2. KingbaseES Entity Framework 概述
2. 基本框架
3. KingbaseES 驱动在 .NET 平台的配置
3.1. KingbaseES .NET Data Provider 的配置
3.2. KingbaseES Entity Framework 6 的配置
4. .NET Data Provider 驱动介绍与应用程序结构说明
4.1. .NET 驱动介绍
4.2. .NET 应用程序结构说明
5. KingbaseES Entity Framework 6 介绍与应用程序结构说明
6. 示例
6.1. KdbndpConnection 示例
6.2. KdbndpCommand 示例
6.3. KdbndpParameter 示例
6.4. KdbndpDataReader 示例
6.5. KdbndpDataAdapter 示例
6.6. KdbndpTransaction 示例
6.7. EntityFramework6 示例
版权申明
联系我们
KingbaseES V008R003 开发手册 开发手册 北京人大金仓信息技术股份有限公司
KingbaseES V008R003 开发手册开发手册 约定约定 以下文本约定适用于本文档: 中括号([和])表示包含一个或多个可选项。不需要输入中括号本身。 花括号({和})表示包含两个以上(含两个)的候选,必须在其中选取一个。不需要输入花 括号本身。 | 为分割中括号或者花括号中的两个或两个以上选项。不需要输入“|”本身。 点(...)表示其之前的元素可以被重复。 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 第第 2 页页 , 共, 共 634 页页
KingbaseES V008R003 开发手册开发手册 开发手册 开发手册 欢迎来到KingbaseES V008R003(以下简称KingbaseES V8R3)教程。本教程从安装与更新、 SQL和PL/SQL、管理、开发、性能、安全和高可用七部分对KingbaseES V8R3数据库进行全方 位的介绍。 本部分为KingbaseES V8R3开发手册。KingbaseES V8R3提供了符合国际标准的SQL语言及丰 富多样的数据访问接口,支持与流行的集成开发环境紧密集成,并对主流数据库高度兼容。自身 的跨平台、多语言、国际化等产品特性也为应用程序开发者提供了便利。本模块将从服务器编程 和客户端编程两个角度为应用程序开发者提供指导。 目录目录 Part I. 快速入门 数据库开发指南 Part II. 服务器编程 触发器 规则系统 PL/SQL开发技巧 Oracle PL/SQL 移植 Part III. 客户端编程 ESQL - C 中的嵌入式 SQL ODBC指南 JDBC指南 DCI指南 Hibernate指南 MyBatis指南 Perl DBI指南 PHP PDO指南 ADO.NET 指南 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 第第 3 页页 , 共, 共 634 页页
KingbaseES V008R003 开发手册开发手册 Part I. 快速入门 快速入门 目录目录 数据库开发指南 前言 1. 编程接口及标准符合性 2. 应用开发框架 3. 应用开发工具 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 第第 4 页页 , 共, 共 634 页页
KingbaseES V008R003 开发手册开发手册 数据库开发指南 数据库开发指南 前言前言 KingbaseES V8R3提供了符合国际标准的SQL语言及丰富多样的数据访问接口,支持与流行的集 成开发环境紧密集成,并对主流数据库高度兼容,从而为应用程序开发者提供了便利。 1. 编程接口及标准符合性 编程接口及标准符合性 KingbaseES V8R3为数据库应用开发人员提供了符合标准的服务器端和客户端编程接口,并提供 多种开发语言和脚本编写语言的数据库访问支撑: 服务器端编程接口: 结构化查询语言(SQL):符合SQL 92的基本特性以及 SQL 2011的核心特性,并兼容大部 分Oracle常用语法。 过程编程语言。提供以下过程语言: PL/SQL,并兼容大部分Oracle常用语法。 PL/Perl PL/Python PL/Tcl 客户端编程接口: Java语言:提供支持Java 6(符合JDBC 4.0标准)、Java 7(符合JDBC 4.1标准)和Java 8(符合JDBC 4.2标准)的JDBC接口。 C/C++语言 KCI:提供原生的高效C访问接口。 ESQL:提供兼容SQL标准和Oracle Pro*C规范的嵌入式SQL编程接口ESQL。 ODBC:符合ODBC 3.5标准。 2. 应用开发框架 应用开发框架 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 第第 5 页页 , 共, 共 634 页页
KingbaseES V008R003 开发手册开发手册 KingbaseES支持Hibernate、Mybatis等常用Java应用开发框架,QtSQL、ADO等常用C++/C#应 用开发框架,允许用户选择应用程序开发框架,以帮助用户复用在现有开发资源和技能上的投 资。 3. 应用开发工具 应用开发工具 KingbaseES支持Visual Studio .NET、Eclipse、NetBeans、JBuilder、PowerBuilder、Delphi、 C++ Builder、JDeveloper等流行的集成开发环境,以及PowerDesigner、Visio、ERWin、 ER/Studio等数据库建模工具,从而保证适应广大开发人员的使用习惯。 KingbaseES自身还提供了丰富、易用的应用开发辅助工具,可以帮助KingbaseES数据库的应用 开发人员提高开发效率,有效管理开发过程。 对象管理工具: 应用开发过程中,开发人员需要经常操作数据库对象,若通过SQL语句实现,则需要熟悉掌握 较多的SQL语句并准确使用,每个数据库除了提供兼容SQL标准的语句之外,也提供了自己扩 展的丰富的语句,直接编写比较困难。KingbaseES提供了对象管理工具,对于常用的数据库 操作,包括显示对象定义、创建对象、修改对象、编辑一个表的数据、移动对象到其他模式、 以某个对象为模板快速生成类似对象等,都提供了可视化且快捷的方式,无需开发人员编写 SQL语句,可以大大提高应用的开发效率。 性能分析 存储过程调试: 在开发过程中,对功能比较复杂的存储过程和函数,开发人员往往需要通过调试功能来辅助开 发。KingbaseES综合考虑开发人员的调试习惯,提供PLSQL调试功能,支持加载,设置断 点,单步,进入,跳出等调试步骤,支持查看堆栈和当前变量等跟踪手段,为开发人员在调试 使用时提供便利。 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 第第 6 页页 , 共, 共 634 页页
KingbaseES V008R003 开发手册开发手册 Part II. 服务器编程 服务器编程 本部分主要讨论KingbaseES V8R3数据库服务器编程。建议用户在熟悉使用SQL命令操纵和查询 数据库(参考《SQL和PL/SQL速查手册》II. SQL语言基础、《SQL和PL/SQL速查手册》III. SQL 语句)、 并熟悉接口所使用的编程语言(参考《SQL和PL/SQL速查手册》IV. PL/SQL教程) 后,开始本部分教程的学习。 目录目录 触发器 1. 概述 2. 表级触发器 3. 事件触发器 规则系统 1. 查询树 2. 视图和规则系统 3. 物化视图 4. INSERT、UPDATE和DELETE上的规则 5. 规则和权限 6. 规则和命令状态 7. 规则 vs 触发器 PL/SQL开发技巧 1. 引号的处理 2. 额外的编译检查 Oracle PL/SQL 移植 1. 移植示例 2. 其它注意事项 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 第第 7 页页 , 共, 共 634 页页
KingbaseES V008R003 开发手册开发手册 触发器触发器 1. 概述概述 1.1. 触发器及其作用 触发器及其作用 触发器(trigger)是用户定义的由事件驱动的特殊过程。一旦定义,所有用户的对应操作均会由 服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。触发器类似于约束,但 是比约束更加灵活,也可以实施比外键约束、检查约束更为复杂的检查和操作,具有更精细和更 强大的数据处理能力。 1.2. 触发器分类 触发器分类 KingbaseES的触发器根据依赖触发对象的不同分为两种表级触发器和事件触发器: a. 表级触发器:依赖于已存在的表,对特定表的相关操作会引动发触发器调用相应的触发器函 数。 b. 事件触发器:依赖于特定的事件,具体的触发器事件详见事件触发器概述。 1.3. 触发器函数 触发器函数 KingbaseES支持通过PL/SQL语言在触发器上定义触发器函数,触发器函数用 CREATE FUNCTION 命令创建。当函数被声明为一个没有参数且返回值类型为 trigger(作用于表级触 发器)或者 event_trigger(作用于事件触发器)的函数时,这个函数就是一个触发器函 数。触发器函数只能通过触发器调用,而不能直接调用。 为了创建一个触发器,必须首先创建一个返回类型为 trigger 或 event_trigger的触发器函 数。这个函数不一定需要返回值,该返回类型仅仅作为一种信号,表示该函数将被作为一个触发 器函数被一个触发器调用。 一个触发器函数必须返回 NULL 或者一个与触发触发器的表结构完全相同的记录/行值。 2. 表级触发器 表级触发器 2.1. 概述概述 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 北 京 人 大 金 仓 信 息 技 术 股 份 有 限 公 司 第第 8 页页 , 共, 共 634 页页
分享到:
收藏