VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

Oracle兼容性参数

a_format_behavior_compat_options

参数说明: Oracle兼容模式下的数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。

该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。

取值范围: 字符串,仅支持表1列出的配置项内容。

默认值: ''

表1 兼容性配置项

配置项取值兼容性行为控制
update_subselect_check_unique表示在使用UPDATE+子查询+SET语法时,是否检查子查询中非目标表的唯一索引都出现在了where条件中,从而保证基表更新时的数据来源中,非目标表匹配到的记录只有一条。用法参考示例2
  • 不设置此选项时,UPDATE语法不对子查询中的非目标表字段进行唯一性索引的检查。只要符合查询条件的记录,都可作为基表更新时的数据来源,这有可能导致更新的结果与预期不符的问题。
  • 当用户在使用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