关键字
兼容oracle,扩展
正文
通常,异构数据库移植的工作量繁重。从Oracle向KingbasES移植的情况也如此。为降低移植工作量,KingbaseES在内部实现了大量的Oracle兼容特性。这些特性从语法或功能上对Oracle 提供了原生支持。因此,在移植过程中,Oracle 程序只需很少甚至不做任何改动就能在KingbaseES 环境中运行。
KingbaseES用户可通过设置相关的数据库兼容开关,部分或全部启用Oracle兼容特性。在实际应用中,用户可采用以下途径设置Oracle兼容开关:
• 在数据库实例data 目录下的kingbase.conf文件中配置
• 在数据库初始化时设置
• 在用户会话中设置
兼容特性开关 | 用途说明 |
---|---|
ora_input_emptystr_isnull | 开关开启时,系统将输入的空串当做NULL处理会话级参数,oracle模式下默认是on , PG模式下默认是off)。 |
ora_forbid_func_polymorphism | 开关开启时,表示开启禁用多态,同模式下不能创建同名的函数或存储过程(会话级参数,缺省值是false) |
ora_open_cursors | 设置一个会话中可以同时打开的DBMS_SQL 游标的最大数目。(限制为:0~65535,默认为300) |
ora_statement_level_rollback | 指定plsql 中是否启用语句级回滚。当指定为true 时,启动语句级回滚功能;当指定为false 时,关闭语句级回滚功能。(会话级参数,缺省值是false) |
指定plsql 中是否启用语句级回滚。当指定为true 时,启动语句级回滚功能;当指定为false 时,关闭语句级回滚功能。(会话级参数,缺省值是false) | 启用或禁用函数兼容oracle 函数输出格式,设置为on 启用此功能,函数作为投影列时,输出函数名和其参数列表。设置为off 时关闭该功能,函数作为投影列时,只输出函数名。(会话级参数,缺省值是false) |
enable_upper_colname | 开关开启时,查询结果的列名将转换为大写。(会话级参数,缺省值是false) |
ignore_zero_number | 开关开启时,number 类型输出时忽略末尾连续的”0”。(会话级参数,缺省值是false) |
nls_length_semantics | 设置字符串类型的长度单位(char 或byte),它和Oracle 参数NLS_LENGTH_SEMATICS 的含义一致(会话级参数,缺省值是char) |
trunc_compatible | 开关开启时,trunc函数返回的timestamp值与oracle一致(会话级参数,缺省值是false) |
除了兼容性参数,KingbaseES还提供了大量扩展包来支持oracle的常用功能。
扩展名称 | 功能说明 |
---|---|
kdb_orafce | 实现对oracle一些函数和包的兼容 |
dbms_session | 实现对session中内容的操作。 |
dbms_random | 提供一个随机数或者字符的生成器。 |
kdb_raw | 实现对raw数据类型的操作 |
dbms_lob | 对CLOB/BLOB大对象就行的操作。 |
dbms_ddl | 创建一个PL/SQL包体、函数、过程。 |
kdb_oracle_datatype | 初始化内置,兼容Oracle数据类型 |
dbms_obfuscation_toolkit | 提供DES或3DES算法进行数据的加解密 |
sys_ksh | 历史会话分析工具。类似oracle ash工具 |
dbms_output | 提供将文本行写入缓冲区、供以后提取和显示的功能。 |
dbms_mview | 刷新物化视图工具包 |
utl_file | 一些对于文件操作的函数。 |
dbms_metadata | 创建特定类型对象的DDL语句。 |
kdb_schedule | 基于后台进程来实现自动作业功能。 |
sys_kwr | 负载信息记录和保存,并提供相关的性能报告。类似awr报告 |
kdb_utils_function | 工具函数,包括xml,字符操作等 |
sys_bulkload | 快速加载数据的命令行工具。类似 sqlldr 工具 |
dbms_utility | 提供一些具有通用功能的子程序 |