DM 达梦数据库与Oracle兼容

一、DM的dm.ini配置文件中参数设定对Oracle兼容性影响

(1)ORDER_BY_NULLS_FLAG,默认值为0,会话级动态参数。

【说明】:ASC 升序排序时,控制 NULL 值返回的位置。取值 0 或 1。 1 表示 NULL 值在最后返回, 0 表示 NULL 值在最前面返回。在参数等于 1 的情况下, NULL 值的返回与 ORACLE 保持一致。DESC 降序时该参数无效

(2)DATETIME_FMT_MODE,默认值为0,系统级动态参数。

【说明】:是否兼容 ORACLE 日期格式。 0:不兼容; 1:兼容。Oracle中的Date类型与DM中的Date不兼容,与DM中DateTime类型是兼容的。

(3)PL_SQLCODE_COMPATIBLE,默认值为0,静态参数。

【说明】:默认值为 0;如果设置为 1,则 PL 的异常处理中, SQLCODE 的错误码值需要尽量与 ORACLE一致。

(4)LEGACY_SEQUENCE,默认值为0,系统级动态参数。

【说明】:序列兼容参数, 0:与 ORACLE 兼容; 1:与旧版本 DM 兼容,不推荐使用。

二、与Oracle兼容性

目前,大多数应用程序使用的是 Oracle 数据库,用户或多或少地使用了 Oracle 的一些特殊功能,而这些特殊功能在其他数据库中都未实现。为了方便应用的移植, DM 实现了很多 Oracle 独特的功能和语法,使得多数 Oracle 的应用可以不用修改而直接移植到 DM 上面。

Oracle 兼容性方面实现的功能包括: ROWNUM 表达式、多列 IN 语法、层次查询、外连接语法“(+)”、 INSTEAD OF 触发器、 %TYPE 以及记录类型等。

三、DM DCI与Oracle OCI

OCI(Oracle Call Interface)是 ORACLE 公司开发的一个应用程序开发工具,是一个通过访问 Oracle 数据库的服务器,控制各类 SQL 语句的执行,进而创建应用程序的的应用程序接口(API)。它支持 SQL 所有的数据定义、数据操作、查询、事务管理等操作,支持 C和 C++的数据类型、调用、语法和语义。它提供了一组可对 Oracle 数据库进行存取的接口子例程(函数)。

DM DCI 是参照 OCI 的接口标准,结合自身的特点,为开发人员提供向 oracle 兼容功能的一款接口产品。为了与 oracle 兼容, DCI 提供的函数都是以 OCI 开头的与 OCI 同名的函数。

四、DM Pro*C与Oracle Pro*C兼容

DM PRO*C 对 Oracle PRO*C 的常用语法进行了兼容, 在 dpc_new 预编译命令中将MODE 参数置为 ORACLE 表示使用兼容 ORACLE 语法的编译模式。使用兼容 Oracle 模式时,在编译时还需要使用 sqlca_ora.h、 sqlda_ora.h、 dpc_ora_dll.h。


猜你喜欢

转载自blog.51cto.com/8368830/2473793