2. 概述

本章节包含以下内容:

  • Oracle兼容特性概览

  • 相关技术资源

2.1. Oracle兼容特性概览

通常,异构数据库移植的工作量繁重。这些工作量主要来源于:在数据类型、SQL语言、PL/SQL语言、甚至客户端应用编程接口等诸多方面对两个数据库所进行的、大量的语法或功能的对齐处理。

同样的,从Oracle向KingbasES移植的情况也如此。为降低移植工作量,KingbaseES在其内部实现了大量的Oracle兼容特性。这些特性 从语法或功能上对Oracle提供了原生支持。因此,在移植过程中,Oracle程序只需很少甚至不做任何改动就能在KingbaseES环境中运行。

此外,对未提供原生支持的Oracle功能,KingbaseES也给出了相应的移植建议。

2.1.1. 数据类型

数据类型是描述数据库系统底层信息资源模式的常用手段。通常,两个数据库系统数据类型的兼容好坏直接影响移植的难易程度。因此,KingbaseES对Oracle的特有数据类型提供了全面的原生支持。这些类型如Oracle的NUMBERVARCHAR2CHAR(n)DATE等。不仅如此,KingbaseES对Oracle PL/SQL中使用的复杂数据类型也提供了兼容性支持,这些类型如Oracle的RECORD类型、%TYPE属性、%ROWTYPE属性、关联数组、可变数组和嵌套表等。

关于interval数据类型目前 V8.6 和Oracle有些差异,主要是精度和语法格式方面。精度方面,V8.6 interval默认精度为6位,Oracle默认精度为9位;语法格式方面,Oracle支持的语法 V8.6 基本都支持。所以在移植方面主要是精度有些差异,从Oracle移植到 V8.6 数据可能会被截断。

2.1.2. SQL语句

在KingbasES中,对大多数常用的Oracle特有SQL语句均提供了原生支持。这项措施使得Oracle应用程序在KingbaseES系统中通常只需很少的代码变动就可正常运行。

KingbaseES主要兼容如下Oracle的 SQL语句:

  • TRUNCATE语句

  • 层次查询

  • DUAL伪表

  • SELECT INTO 的FOR UPDATE语句

  • UPDATE[前缀]多列更新

  • INSERT INTO TABLE([前缀]列)

  • DELETE [FROM]语句

  • 支持WITH子句

  • 支持DBLINK

  • 支持CREATE FORCE VIEW

  • 支持SEQUENCE访问子句

上述这些SQL语句均从语法和语义上实现了Oracle兼容。

2.1.3. PL/SQL语法

KingbaseES支持如下Oracle PL/SQL的常用语法:

  • 赋值语句

  • IF-THEN-ELSE 语句

  • CASE 语句

  • 多种循环语句,如LOOP 语句、WHILE-LOOP 语句和FOR LOOP 语句

  • GOTO 语句

  • %TYPE 属性和%ROWTYPE 属性

  • REF CUSOR 游标

  • %NOTFOUND、%FOUND、%ISOPEN 和 %ROWCOUNT 游标属性

  • RETURNING INTO 语句

  • EXECUTE IMMEDIATE 语句

  • 支持 BULK COLLECT

  • PL/SQL 支持集合类型(关联数组、嵌套表、可变数组)

  • PL/SQL 异常处理

  • FORALL 语句

2.1.4. PL/SQL对象

KingbaseES支持如下Oracle PL/SQL对象:

  • 内置标量函数

  • 行级BEFORE触发器

  • 行级AFTER触发器

  • INSTEAD OF触发器

  • 匿名块

  • 存储过程

  • 函数

  • 子类型

  • 对象类型

2.1.5. 客户端SQL交互工具

在实际应用中,通常客户DDL脚本和报表是通过SQL交互工具移植的。针对这种情况,KingbaseES提供了如下SQL交互工具:

  • KSQL:命令行的SQL交互工具,类似Oracle的 SQL* PLUS。

  • 数据库系统管理工具:图形化的SQL交互工具,类似Oracle的SQL Developer图形化工具。

通过上述工具,用户可连接数据库服务器,运行数据库实用程序,发送SQL语句,运行SQL脚本,或运行KingbaseES数据库管理命令实施数据库管理等。

2.2. 相关技术资源

本指南重点从语句兼容特性、迁移工具、迁移场景和应用程序移植等几方面描述Oracle移植的关键技术和实现方式。在每项技术和实现方式的描述上,本指南只提供有限的内容介绍,并未提供全面的细节说明。所以,用户若需了解某些技术的实现细节还请参照相关的技术资料。

金仓数据库 Oracle至KingbaseES迁移最佳实践(2. 概述)相关推荐

  1. 金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(3. MySQL 数据库移植实战)

    3. MySQL 数据库移植实战 由于 KingbaseES 利用 KDTS-PLUS 等多种工具简化移植过程. 本节重点描述了在实际应用中移植一个 MySQL 数据库系统的完整过程,以及其中的主要移 ...

  2. 干货丨金仓JDBC读写分离介绍和最佳实践

    背景和目的 当前业务系统面临的业务压力越来越大,单节点已经难以满足现在和未来的业务需求.因此市面上出现了很多的解决方案,其中就包括读写分离集群.读写分离通过备机读负载均衡,降低主机上读负载,以此提高整 ...

  3. 金仓数据库字段_mysql迁移到金仓数据库(V8R3)

    mysql迁移到金仓数据库(V8R3)方案 ​ 本次迁移为停机停服迁移,无需保障服务不中断,不存在在线数据实时迁移问题.为了实现mysql数据库迁移到金仓数据库,我们需要从以下几方面考虑解决方案 金仓 ...

  4. 金仓数据库KingbaseES 迁移工具—PL/SQL中Oracle和KingbaseES 的对比

    关键字: KingbaseES.PL/SQL.存储过程.函数 一.PL/SQL语言兼容特性 在 PL/SQL 语言方面,KingbaseES 提供了大量的Oracle 兼容特性.这些特性使得大多数的 ...

  5. 要闻 | 人大金仓数据库管理系统KingbaseES V8入驻华为云严选商城

    号外号外 可以网上下单购买金仓产品啦 近日,人大金仓数据库管理系统KingbaseES V8入驻华为云严选商城,金仓产品正式开启线上销售新模式.客户在产生购买意向后,人大金仓将根据所属行业.地区等信息 ...

  6. 金仓数据库KingbaseES表空间(tablespace)知多少

    金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等.一旦表空间被创建,那么就可以在创建数据库对象时通 ...

  7. 如何在金仓数据库KingbaseES中使用pg_get_function_arg_default函数

    关键字 pg_get_function_arg_default,regproc 问题描述 如何在金仓数据库KingbaseES中使用pg_get_function_arg_default函数获取函数或 ...

  8. 人大金仓(Kingbase)数据库迁移——KDMS工具(人大金仓数据库迁移工具迁移失败可使用此方法)

    使用KDMS工具迁移 注意事项: 使KDMS工具迁移数据库时只能迁移除数据库表数据之外的内容之后再结合金仓数据库本身的工具进行迁移数据 相关推荐:金仓工具进行迁移数据  https://blog.cs ...

  9. 解决金仓数据库KingbaseES创建serial列并将其设置为主键约束,同时copy两条及以上数据时报错的问题

    ​  关键字 人大金仓.金仓数据库.KingbaseES.KES.serial.copy.PRIMARY KEY 问题描述 使用KingbaseES V8R3数据库的客户端工具ksql执行copy - ...

最新文章

  1. 机房配电系统与配电电缆线径的选择及巡查
  2. Ubuntu:Ubuntu系统下在pycharm软件内配置anaconda环境(一张图轻松搞定!)
  3. 求整数的位数及各位数字之和_如何判断正整数能否被7、4、8整除?(20年1月24日)...
  4. [UWP]针对UWP程序多语言支持的总结,含RTL
  5. 创建代码生成器可以很简单:如何通过T4模板生成代码?[上篇]
  6. win7查看隐藏文件_Win8系统查看隐藏文件的操作方法是什么?
  7. From the data point of view
  8. 面向对象设计思想_重要_2
  9. 2017-2018-1 20155330 《信息安全系统设计基础》第3周学习总结
  10. php 谈谈我对session, cookies和jwt的理解
  11. 采集博图V14-PLCSim数据Demo实现流程
  12. python将经纬度坐标转换为xy_Python将x,y数据转换为经纬度d
  13. OpenCv——OpenCv2 Mat创建、复制、释放
  14. MapBox使用之路线规划
  15. Cisco IGRP
  16. android模拟器无法上局域网,模拟器无法上网解决方法
  17. 实现一个简单的抽奖系统
  18. 数字化转型,有你有我
  19. 微信小程序使用第三方插件
  20. VBS操作文件:File对象和Files集合

热门文章

  1. 查看、修改git账号信息
  2. 幅相曲线渐近线_若最小相位系统的低频段幅频特性的渐近线是一条斜率为20dB/dec的直线,则该系统( )。_学小易找答案...
  3. K均值聚类的理解和实现
  4. 闪动的文字图片怎么制作?教你一招闪图在线制作
  5. springboot学习(六十七) springboot项目通过gradle-docker-plugin插件构建为doker镜像并推送至镜像私服
  6. ubuntu16.04安装teamviewer
  7. 晶体三极管的三个工作区域及温度对特性的影响
  8. dell刷sn_戴尔笔记本怎么查询sn码
  9. linux telnet qq邮箱,用telnet测试给qq邮箱发邮件,中途可能腾讯要你开启smtp服务器...
  10. sr550服务器配置硬盘,【联想SR550配置】联想SR5502颗服务器配置-ZOL中关村在线