暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

kingbase与oracle的函数兼容

原创 jack 2021-12-27
2156

化配置

关键字:

KingbaseES、Oracle、数据库参数

1. KingbaseES的Oracle兼容配置要求

KingbaseES用户可通过设置相关的数据库兼容开关,部分或全部启用Oracle兼容特性。在实际应用中,用户可采用以下途径设置Oracle兼容开关:

• 在数据库实例data目录下的kingbase.conf文件中配置

• 在数据库初始化时设置

• 在用户会话中设置

2. KingbaseES的Oracle兼容参数说明

KingbaseES提供了多个Oracle特性兼容开关。在Oracle移植过程中,用户可按需使用这些开关。下表列出KingbaseES提供的Oracle兼容特性开关。

2-1  KingbaseES的Oracle兼容特性开关一览表

兼容特性开关

ora_input_emptystr_isnull

用途说明

ora_forbid_func_polymorphism

开关开启时,系统将输入的空串当做NULL处理会话级参数,oracle模式下默认是on , PG模式下默认是off)

ora_numop_style

开关开启时,函数/存储过程支持多态。(会话级参数,缺省值是false)

ora_open_cursors

开关开启时, integers 操作符当做 numeric操作符。(会话级参数,缺省值是false)

ora_statement_level_rollback

设置一个会话中可以同时打开的DBMS_SQL游标的最大数目。(限制为:0~65535,默认为300)

enable_func_colname

指定plsql中是否启用语句级回滚。当指定为true时,启动语句级回滚功能;当指定为false时,关闭语句级回滚功能。(会话级参数,缺省值是false)

enable_upper_colname

启用或禁用函数兼容oracle函数输出格式,设置为on启用此功能,函数作为投影列时,输出函数名和其参数列表。设置为off时关闭该功能,函数作为投影列时,只输出函数名。(会话级参数,缺省值是false)

ignore_zero_number

开关开启时,查询结果的列名将转换为大写。(会话级参数,缺省值是false)

nls_length_semantics

开关开启时,number类型输出时忽略末尾连续的"0"。(会话级参数,缺省值是false)

trunc_compatible

设置字符串类型的长度单位(char或byte), 它和Oracle参数NLS_LENGTH_SEMATICS的含义一致( 会话级参数, 缺省值是char)


开关开启时,trunc函数返回的timestamp值与oracle一致(会话级参数,缺省值是false)

3. 查看当前KingbaseES数据库默认配置
3.1 KingbaseES数据库版本


图3-1 数据库版本

3.2 兼容参数默认配置



图3-2 查看兼容性参数配置

4. 配置兼容性参数

在执行数据迁移前,在KingbaseES数据库配置相关参数;例如参数Ignore_null_check开关开启时,number类型输出时忽略末尾连续的"0"。(会话级参数,缺省值是false)

如下图4-1所示,在session级别配置ignore_null_check参数。


图4-1 配置参数

5. 总结

在SQL和PL/SQL语言方面,KingbaseES提供大量的Oracle兼容特性。这些特性从数据类型、SQL语法、标量函数、用户定义包和系统内置包、匿名块、存储过程和触发器等多方面对Oracle进行了原生支持。

6.pivot 和unpivot 功能(行专列列转行)
create extension kdb_utils_function;
7.crosstab(行专列)
create extension tablefunc;



8.wm_concat函数

create or replace function sf_concat(text,text) returns text as

$$
select case when $1 is not null then $1||','||$2 else $2 end;
$$ language sql called on null input;

create AGGREGATE wm_concat (text) (sfunc=sf_concat,stype=text);





最后修改时间:2022-09-28 16:45:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论