化配置 关键字: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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。