Oracle兼容性参数
a_format_behavior_compat_options
参数说明: Oracle兼容模式下的数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。
该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 字符串,仅支持表1列出的配置项内容。
默认值: ''
配置项取值 | 兼容性行为控制 |
---|---|
update_subselect_check_unique | 表示在使用UPDATE+子查询+SET语法 时,是否检查子查询中非目标表的唯一索引都出现在了where条件中,从而保证基表更新时的数据来源中,非目标表匹配到的记录只有一条。用法参考示例2。
UPDATE+子查询+SET语法 时,如有检测唯一索引的需要,可通过此选项进行控制(会话级别)。 |
ora_illegal_nul_conversion
参数说明: 控制重载包函数时,是否对参数名进行检查。
该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。
该参数仅在数据库兼容模式为Oracle时支持(即数据库实例初始化时指定DBCOMPATIBILITY='A')。
取值范围: 布尔型
- on:支持将NUL(0x00)字符转换为空格进行保存。
- off:不支持将NUL(0x00)字符转换为空格。系统会进行报错,提示非法字符。
默认值: off
示例: 导入带有NUL值的数据文件。
前置步骤: 准备需要导入的数据文件destination1.csv
,数据文件中含有NUL(空格)。数据文件位于/home/vastbase/
,文件内容如下:
e^@,1
f^@,2
g^@,3
h^@,4
i^@,4
^@p,10
1、开启ora_illegal_nul_conversion参数。
set ora_illegal_nul_conversion to on;
2、创建测试表。
create table ds1 ( col1 varchar(100), col2 int );
3、向表中导入准备好的数据文件。
copy ds1 from '/home/vastbase/destination1.csv' with delimiter ',';
4、查询导入的数据。
select * from ds1;
返回结果为:
col1 | col2
------+------
e | 1
f | 2
g | 3
h | 4
i | 4
p | 10
(6 rows)
5、查询含有NUL(空格)的字段长度。
select LENGTH(col1) from ds1;
返回结果为:
length
--------
2
2
2
2
2
2
(6 rows)
通过上述结果可以看出,由于NUL(空格)占用了1个字符,所以字段长度为2。
enable_oranumber_type
参数说明: 控制Oracle兼容模式下NUMBER类型的映射逻辑。
该参数属于SIGHUP类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
on:number关键字映射为number类型。
off:number关键字映射为numeric类型。
默认值: on
plsql_implicit_recompile
参数说明: 用于控制PL/SQL隐式编译行为。
该参数仅在数据库兼容模式为Oracle时生效(即数据库实例初始化时指定DBCOMPATIBILITY='A')。
该参数属于USERSET类型,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
on:被依赖对象会在依赖对象发生变化时自动进行隐式编译;
off:依赖对象发生变化时,被依赖对象不会自动进行隐式编译。
默认值: on