华为云用户手册

  • maximal_feedback_model_num 参数说明:该参数用于设置基数反馈模型数量上限,超过此上限后不再训练新的模型。 参数类型:整型 参数单位:个 取值范围:-1 ~ 1000000。值为-1表示无上限。 默认值:10000 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。如果基数反馈模型数量上限设置过小可能会出现系统因无法训练新的模型而导致反馈基数估计功能失效;如果数量上限设置过大可能会影响系统性能,造成系统性能下降。
  • enable_operator_prefer 参数说明:该参数用于指定是否开启算子倾向性规则,在估计代价相近的情况下,倾向于选择参数化路径执行表连接。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on表示开启参数化路径优先。 off表示不开启参数化路径优先。 默认值:off 此参数生效有两个必要的前置条件: 参数化路径被生成。 参数化路估计的代价和其他索引扫描算子类似。
  • enable_adaptive_cost 参数说明:该参数用于设置基于反馈的优化器基数和代价矫正功能总开关,打开后开启算子信息收集流程和基数估计流程,后端模型维护的启动线程会随此参数开关启动或退出。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启算子信息流程和基数估计流程。 off:表示关闭算子信息流程和基数估计流程。 默认值: on:新安装的数据库的默认值。 off:505.1.0版本之前的数据库升级后的默认值。 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。请根据实际需要开启/关闭此参数。
  • enable_hypo_index 参数说明:该参数控制数据库的优化器进行EXPLAIN时是否考虑创建的虚拟索引。通过对特定的查询语句执行explain,用户可根据优化器给出的执行计划评估该索引是否能够提升该查询语句的执行效率。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on表示在进行EXPLAIN时创建虚拟索引。 off表示在进行EXPLAIN时不创建虚拟索引。 默认值:off
  • db4ai_snapshot_mode 参数说明:snapshot有2种模式:MSS(物化模式,存储数据实体)和CSS(计算模式,存储增量信息)。 参数类型:字符串 参数单位:无 取值范围:"MSS","CSS" "MSS":表示物化模式,db4ai在创建快照的时候存储数据实体。 "CSS":表示计算模式,db4ai在创建快照的时候存储增量信息。 默认值:"MSS" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。根据需要进行模式切换。
  • multi_stats_type 参数说明:该参数用于指定在enable_ai_stats为on状态下创建的统计信息类别。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:枚举类型,有效值为"BAYESNET"、"MCV"、"ALL"。 "BAYESNET":只创建智能统计信息。 "MCV":只创建传统统计信息。 "ALL":同时创建传统统计信息和智能统计信息。 默认值:"BAYESNET"
  • enable_cachedplan_mgr 参数说明:该参数用于指定是否开启自适应计划选择功能。自适应计划选择弥补了传统单一缓存计划无法根据查询条件参数进行变化带来的性能问题,并且避免了频繁调用查询优化。开启此功能用户可以通过维护多个缓存计划实现适应不同的查询参数,从而提升查询执行性能。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许使用多计划缓存功能。 off:表示不允许使用多计划缓存功能。 默认值:on 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。开启此参数有助于提升查询性能,关闭此参数可能导致查询性能的降低。
  • 语法格式 格式一:START TRANSACTION格式 1 2 3 4 START TRANSACTION [ { ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [ ...] ]; 格式二:BEGIN格式 1 2 3 4 5 6 7 BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [ ...] ];
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 --创建SCHEMA。 gaussdb=# CREATE SCHEMA tpcds; --创建表tpcds.reason。 gaussdb=# CREATE TABLE tpcds.reason (c1 int, c2 int); --以默认方式启动事务。 gaussdb=# START TRANSACTION; gaussdb=# SELECT * FROM tpcds.reason; gaussdb=# END; --以默认方式启动事务。 gaussdb=# BEGIN; gaussdb=# SELECT * FROM tpcds.reason; gaussdb=# END; --以隔离级别为READ COMMITTED,读/写方式启动事务。 gaussdb=# START TRANSACTION ISOLATION LEVEL READ COMMITTED READ WRITE; gaussdb=# SELECT * FROM tpcds.reason; gaussdb=# COMMIT; --删除表。 gaussdb=# DROP TABLE tpcds.reason; --删除SCHEMA。 gaussdb=# DROP SCHEMA tpcds CASCADE;
  • 参数说明 WORK | TRANSACTION BEGIN格式中的可选关键字,没有实际作用。 ISOLATION LEVEL 指定事务隔离级别,它决定当一个事务中存在其他并发运行事务时它能够看到什么数据。 在事务中第一个数据修改语句(INSERT、DELETE、UPDATE、FETCH、COPY)执行之后,事务隔离级别就不能再次设置。 取值范围: READ COMMITTED:读已提交隔离级别,只能读到已经提交的数据,而不会读到未提交的数据。这是缺省值。 REPEATABLE READ: 可重复读隔离级别,仅仅看到事务开始之前提交的数据,它不能看到未提交的数据,以及在事务执行期间由其它并发事务提交的修改。 SERIALIZABLE:GaussDB目前功能上不支持此隔离级别,设置该隔离级别时,等价于REPEATABLE READ。 READ WRITE | READ ONLY 指定事务访问模式(读/写或者只读)。
  • PG_TABLESPACE PG_TABLESPACE系统表存储表空间信息。 表1 PG_TABLESPACE字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 spcname name 表空间名称。 spcowner oid 表空间的所有者,通常是创建它的人。 spcacl aclitem[] 访问权限。具体请参见GRANT和REVOKE。 spcoptions text[] 表空间的选项。 spcmaxsize text 可使用的最大磁盘空间大小,单位Byte。 relative boolean 标识表空间指定的存储路径是否为相对路径。 t(true):表示是。 f(false):表示不是。 父主题: 其他系统表
  • DB_TAB_COMMENTS DB_TAB_COMMENTS视图显示当前用户可访问的所有表和视图的注释信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_TAB_COMMENTS字段 名称 类型 描述 owner character varying(128) 表或视图的所有者。 table_name character varying(128) 表或视图的名称。 table_type character varying(11) 对象类型。 comments text 注释。 origin_con_id numeric 暂不支持,值为0。 schema character varying(64) 表所属的名称空间的名称。 父主题: 其他系统视图
  • 功能描述 SET CONSTRAINTS设置当前事务检查行为的约束条件。 IMMEDIATE约束是在每条语句后面进行检查。DEFERRED约束一直到事务提交时才检查。每个约束都有自己的模式。 从创建约束条件开始,一个约束总是设定为DEFERRABLE INITIALLY DEFERRED、DEFERRABLE INITIALLY IMMEDIATE和NOT DEFERRABLE三个特性之一。第三种总是IMMEDIATE,并且不会受SET CONSTRAINTS影响。前两种以指定的方式启动每个事务,但是其行为可以在事务里用SET CONSTRAINTS改变。 带着一个约束名列表的SET CONSTRAINTS改变这些约束的模式(都必须是可推迟的)。如果有多个约束匹配某个名称,则所有都会被影响。SET CONSTRAINTS ALL改变所有可推迟约束的模式。 当SET CONSTRAINTS把一个约束从DEFERRED改成IMMEDIATE的时候,任何将在事务结束准备进行的数据修改都将在SET CONSTRAINTS的时候执行检查。如果违反了任何约束,SET CONSTRAINTS都会失败(并且不会修改约束模式)。因此,SET CONSTRAINTS可以用于强制在事务中某一点进行约束检查。
  • DBE_PLDEBUGGER.turn_on 该函数用于标记某一存储过程为可调试,执行turn_on后server端可以执行该存储过程来进行调试,如表1所示。需要用户根据系统表PG_PROC手动获取存储过程oid,传入函数中。turn_on后本session内执行该存储过程会停在第一条sql前等待debug端的调试操作。该设置会在session断连后默认被清理掉。目前不支持对启用自治事务的存储过程/函数进行调试。同时turn_on的存储过程不超过100个。 函数原型为: 1 2 DBE_PLDEBUGGER.turn_on(Oid) RETURN Record; 表1 turn_on入参和返回值列表 名称 类型 描述 func_oid IN oid 函数oid nodename OUT text 节点名称 port OUT integer 连接端口号 父主题: DBE_PLDEBUGGER Schema
  • SEQUENCE函数 序列函数为用户从序列对象中获取后续的序列值提供了简单的多用户安全的方法。 nextval(regclass) 描述:递增序列并返回新值。 为了避免从同一个序列获取值的并发事务被阻塞,nextval操作不会回滚;即一旦值被抓取,就认为它已经被用过,并且不会再被返回。即使该操作处于事务中,当事务之后中断,或者如果调用查询结束不使用该值,也是如此。这种情况将在指定值的顺序中留下未使用的“空洞”。因此,GaussDB序列对象不能用于获得“无间隙”序列。 nextval函数只能在主机上执行,备机不支持执行此函数。 返回类型:numeric nextval函数有两种调用方式(其中第二种调用方式目前不支持Sequence命名中有特殊字符"."的情况),如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 gaussdb=# CREATE SEQUENCE seqDemo; --示例1: gaussdb=# SELECT nextval('seqDemo'); nextval --------- 1 (1 row) --示例2: gaussdb=# SELECT seqDemo.nextval; nextval --------- 2 (1 row) gaussdb=# DROP SEQUENCE seqDemo; currval(regclass) 描述:返回当前会话里最近一次nextval返回的数值。如果当前会话还没有调用过指定的sequence的nextval,那么调用currval将会报错。 返回类型:numeric currval函数有两种调用方式(其中第二种调用方式目前不支持Sequence命名中有特殊字符"."的情况),如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 gaussdb=# CREATE SEQUENCE seq1; gaussdb=# SELECT nextval('seq1'); --示例1: gaussdb=# SELECT currval('seq1'); currval --------- 1 (1 row) --示例2: gaussdb=# SELECT seq1.currval; currval --------- 1 (1 row) gaussdb=# DROP SEQUENCE seq1; lastval() 描述:返回当前会话里最近一次nextval返回的数值。这个函数等效于currval,只是它不用序列名为参数,它抓取当前会话里面最近一次nextval使用的序列。如果当前会话还没有调用过nextval,那么调用lastval将会报错。 返回类型:numeric 示例: 1 2 3 4 5 6 7 8 gaussdb=# CREATE SEQUENCE seq1; gaussdb=# SELECT nextval('seq1'); gaussdb=# SELECT lastval(); lastval --------- 1 (1 row) gaussdb=# DROP SEQUENCE seq1; setval(regclass, numeric) 描述:设置序列的当前数值。 返回类型:numeric 示例: 1 2 3 4 5 6 7 8 gaussdb=# CREATE SEQUENCE seqDemo; gaussdb=# SELECT nextval('seqDemo'); gaussdb=# SELECT setval('seqDemo',5); setval -------- 5 (1 row) gaussdb=# DROP SEQUENCE seqDemo; setval(regclass, numeric, Boolean) 描述:设置序列的当前数值以及is_called标志。 返回类型:numeric 示例: 1 2 3 4 5 6 7 8 gaussdb=# CREATE SEQUENCE seqDemo; gaussdb=# SELECT nextval('seqDemo'); gaussdb=# SELECT setval('seqDemo',5,true); setval -------- 5 (1 row) gaussdb=# DROP SEQUENCE seqDemo; Setval后当前会话会立刻生效,但如果其他会话有缓存的序列值,只能等到缓存值用尽才能感知Setval的作用。所以为了避免序列值冲突,setval要谨慎使用。 因为序列是非事务的,setval造成的改变不会由于事务的回滚而撤销。 nextval函数只能在主机上执行,备机不支持执行此函数。 pg_sequence_last_value(sequence_oid oid, OUT cache_value int16, OUT last_value int16) 描述:获取指定sequence的参数,包含缓存值、当前值。 返回类型:int16,int16 last_insert_id() 描述:获取最近一次为自动增长列成功插入的第一个自动生成的值。 返回类型:int16 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 gaussdb=# CREATE TABLE animals_test ( gaussdb(# id int PRIMARY KEY NOT NULL AUTO_INCREMENT, gaussdb(# name CHAR(30) NOT NULL gaussdb(# ); NOTICE: CREATE TABLE will create implicit sequence "animals_test_id_seq" for serial column "animals_test.id" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "animals_test_pkey" for table "animals_test" CREATE TABLE gaussdb=# SELECT last_insert_id(); last_insert_id ---------------- 0 (1 row) gaussdb=# INSERT INTO animals_test (name) VALUES ('dog'); INSERT 0 1 gaussdb=# SELECT last_insert_id(); last_insert_id ---------------- 1 (1 row) last_insert_id(int16) 描述:设置下一次last_insert_id()函数的返回值,并返回此值。若参数为NULL,将下一次last_insert_id()函数的返回值设为0,此函数返回NULL。 返回值类型:int16 示例: 1 2 3 4 5 6 7 8 9 10 gaussdb=# SELECT last_insert_id(100); last_insert_id ---------------- 100 (1 row) gaussdb=# SELECT last_insert_id(); last_insert_id ---------------- 100 (1 row) last_insert_id()和last_insert_id(int16)是会话级别的函数,若当前会话未对自动增长列插入任何数据,last_insert_id()返回值为0。 last_insert_id()和last_insert_id(int16)仅在参数sql_compatibility='B'时可用。 父主题: 函数和操作符
  • 数据类型转换 数据库中有些数据类型间允许进行隐式类型转换(例如赋值、函数调用的参数等)、有些数据类型间不允许进行隐式数据类型转换(例如INT),可尝试使用GaussDB提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB数据库常见的隐式类型转换如表1所示。 GaussDB支持的DATE的效限范围是:公元前4713年到公元294276年。 表1 隐式类型转换表 原始数据类型 目标数据类型 备注 CHAR VARCHAR2 - CHAR NUMBER 原数据必须由数字组成。 CHAR DATE 原数据不能超出合法日期范围。 CHAR RAW - CHAR CLOB - VARCHAR2 CHAR - VARCHAR2 NUMBER 原数据必须由数字组成。 VARCHAR2 DATE 原数据不能超出合法日期范围。 VARCHAR2 CLOB - NUMBER CHAR - NUMBER VARCHAR2 - DATE CHAR - DATE VARCHAR2 - RAW CHAR - RAW VARCHAR2 - CLOB CHAR - CLOB VARCHAR2 - CLOB NUMBER 原数据必须由数字组成。 INT4 CHAR - 父主题: 存储过程
  • GUC参数设置 GaussDB提供了六类GUC参数,具体分类和设置方式请参考表1。 表1 GUC参数分类 参数类型 说明 设置方式 INTERNAL 固定参数,在创建数据库的时候确定,用户无法修改,只能通过show语法或者pg_settings视图进行查看。 无 POSTMASTER 数据库服务端参数,在数据库启动时确定,可以通过配置文件指定。 支持表2中的方式一。 SIGHUP 数据库全局参数,可在数据库启动时设置或者在数据库启动后,发送指令重新加载。 支持表2中的方式一、方式二。 BACKEND 会话连接参数。在创建会话连接时指定,连接建立后无法修改。连接断掉后参数失效。内部使用参数,不推荐用户设置。 支持表2中的方式一、方式二。 说明: 设置该参数后,下一次建立会话连接时生效。 SUSET 数据库管理员参数。可在数据库启动时、数据库启动后或者数据库管理员通过SQL进行设置。 支持表2中的方式一、方式二或由数据库管理员通过方式三设置。 USERSET 普通用户参数。可被任何用户在任何时刻设置。 支持表2中的方式一、方式二或方式三设置。 说明: 设置USERSET类型的参数时,ALTER DATABASE设置的参数值优先级高于gs_guc设置。如果想要gs_guc设置的参数值生效,则需要执行“alter database xxx reset xxx”进行重置。 GaussDB提供了三种方式来修改GUC参数,具体操作请参考表2: 表2 GUC参数设置方式 序号 设置方法 方式一 使用如下命令修改参数。 gs_guc set -Z nodetype -D datadir -c "paraname=value" 说明: 如果参数是一个字符串变量,则使用-c parameter="'value'"或者使用-c "parameter = 'value'"。 当参数是一个字符串变量,gs_guc工具不会进行合法性校验,如果配置参数不合法导致数据库运行异常,可以查看gs_log日志进行问题排查。 使用以下命令在CN和DN上同时设置某个参数。 gs_guc set -Z coordinator -Z datanode -N all -I all -c "paraname=value" 使用以下命令在CN和DN上设置cm_agent某个参数。 gs_guc set -Z cmagent -c "paraname=value" gs_guc set -Z cmagent -N all -I all -c "paraname=value" 使用以下命令在CN和DN上设置cm_server某个参数。 gs_guc set -Z cmserver -c "paraname=value" gs_guc set -Z cmserver -N all -I all -c "paraname=value" 重启数据库使参数生效。 说明: 重启集群操作会导致用户执行操作中断,请在操作之前规划好合适的执行窗口。 gs_om -t stop && gs_om -t start 方式二 gs_guc reload -Z nodetype -D datadir -c "paraname=value" 说明: 使用以下命令在CN和DN上同时设置某个参数。 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "paraname=value" 使用以下命令在CN和DN上设置cm_agent某个参数。 gs_guc reload -Z cmagent -N all -I all -c "paraname=value" gs_guc reload -Z cmagent -c "paraname=value" 使用以下命令在CN和DN上设置cm_server某个参数。 gs_guc reload -Z cmserver -N all -I all -c "paraname=value" gs_guc reload -Z cmserver -c "paraname=value" 方式三 修改会话级别的参数。 设置会话级别的参数 1 gaussdb=# SET paraname TO value; 修改本次会话中的取值。退出会话后,设置将失效。 使用方式一和方式二设置参数时,若所设参数不属于当前节点,数据库会提示参数不在支持范围内的相关信息。 使用方式三设置参数时,若参数值为int整型,则会将整数前导零过滤掉,例如SET paraname TO 008192与SET paraname TO 8192效果相同。
  • 背景信息 GaussDB提供了多种修改GUC参数的方法,用户可以方便的针对数据库、用户、会话进行设置。 参数名称不区分大小写。 参数取值有整型、浮点型、字符串、布尔型和枚举型五类。 布尔值可以是(on,off)、(true,false)、(yes,no)或者(1,0),且不区分大小写。 枚举类型的取值是系统表pg_settings的enumvals字段取值定义的。 对于有单位的参数,在设置时请指定单位,否则将使用默认的单位。 参数的默认单位是系统表pg_settings的unit字段定义的。 内存单位有:KB(千字节)、MB(兆字节)和GB(吉字节)。 时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。 CN和DN参数可以同时进行设置,其他类型的参数不能同时进行设置。 具体参数说明请参见GUC参数说明。
  • fix_func_selection 参数说明:是否优化函数匹配策略。 catlist顺序问题:当用户自定义函数与系统函数存在冲突,数据库系统在选择函数时,会受该系统函数在数据库系统中的注册顺序影响,从而导致选择函数结果不同。 参数类型:字符串 参数单位:无 取值范围:''、catlist。 '':不进行优化,与505.1.0版本之前的版本保持一致。 catlist :优化catlist顺序问题(对非B兼容模式进行优化,非B兼容模式下始终优先选择系统函数并执行。B兼容模式与505.1.0版本之前的版本保持一致,可能提示函数不唯一的错误,也可能选中系统函数进行执行)。 默认值: catlist:新安装的数据库的默认值 '':505.1.0版本之前的数据库升级后的默认值 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
  • max_allowed_packet 参数说明:M-Compatibility模式数据库行为配置项。 参数原本含义为M-Compatibility兼容模式下数据库和客户端通信单个数据包的长度上限;当前此参数并未用来限制数据库和客户端通信的数据包长度上限,仅用来限制部分函数的返回值上限。影响字符串函数REPEAT、REPLACE、SPACE返回值的上限,以及影响CAST(expr AS BINARY(N))、CONVERT(expr AS BINARY(N))函数中N的取值。该参数属于PGC_SIGHUP类型参数。 参数类型:整型 参数单位:字节 取值范围:1024 ~ 1073741824(取值只能是1024的倍数,非倍数时将向下舍入到最接近的倍数)。 默认值:4194304 设置建议:缺省值4194304。
  • enable_m_format_hook 参数说明:M-Compatibility模式数据库行为配置项。 该参数控制M-Compatibility模式hook是否生效。 参数类型:布尔型 参数单位:无 取值范围: ON:表示M-Compatibility模式数据库允许挂载对应解析执行hook。 OFF:表示M-Compatibility模式数据库不挂载对应解析执行hook。 默认值:ON 设置建议:当前参数仅针对当前未完全适配的外部工具使用,不允许用户使用。
  • gs_format_behavior_compat_options 参数说明:gs_format_behavior_compat_options用于选择GaussDB内部系统函数配置项。 参数类型:字符串 参数单位:无 取值范围:当前只支持表14中的兼容性配置项,当设置多个兼容性配置项时,相邻配置项之间用逗号隔开。 默认值:'sqrt_karatsuba' 表14 gs_format_behavior兼容性配置项 兼容性配置项 兼容性行为控制 'sqrt_karatsuba' 设置此参数:表示在调用sqrt平方根函数时使用Karatsuba平方根算法,karatsuba算法性能更高但是在极少数情况下精度可能会和牛顿迭代算法不一致。 不设置此参数:在计算sqrt平方根算法时会使用默认的牛顿迭代算法进行平方根的计算。 'allow_textconcat_null' 设置此参数:在PG兼容模式下字符串和null值拼接会返回对应的字符串的值。 -- 在PG兼容模式下执行 gaussdb=# set gs_format_behavior_compat_options='allow_textconcat_null'; SET gaussdb=# select 'a' || null || 'b'; ?column? ---------- ab (1 row) 不设置此参数:在PG兼容模式下字符串和null值拼接会返回NULL。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:控制一些兼容性特性是否可用,若要更改,请在理解参数含义后谨慎操作,避免因误操作产生意料之外的风险。
  • enable_convert_illegal_char 参数说明:对输出结果中的非法编码是否设置不进行校验并以占位符替换显示。 参数类型:布尔型 参数单位:无 取值范围: on表示开启,特殊字符在查询时将替换为convert_illegal_char_mode参数指定符号的编码。 off表示关闭,查询结果中包含的超出当前字符集编码规则外的编码会校验后报错。 默认值:off 设置方式:该参数属于USERSET类型参数,请参见表2中对应设置方法进行设置。 设置建议:设置为默认值,仅在数据中存在特殊字符且需要对特殊字符进行强制不报错处理时开启该参数。 当数据库字符集为:utf8、zhs16gbk、gb18030、gb18030-2022、latin1时,enable_convert_illegal_char = on时生效,且在数据库客户端与服务端字符集不相同时非法编码将以占位符形式显示。 特殊字符范围:本文所指的特殊字符范围仅包括完全异常编码和混合编码,不支持\u0000字符。若字符编码中包含\u0000字符,在使用时通常会在\u0000处截断,无法保证数据的完整性。 在数据库客户端与服务端字符集不相同时,超出当前服务端字符集外的特殊字符只能通过函数dbe_raw.cast_to_varchar2()写入或导入导出工具写入数据库。 当开启GUC参数时,特殊字符在下表所列的函数、高级包函数中的表现为: 在客户端与服务端字符集一致时:特殊字符在查询时不报错,与开启GUC参数前的行为保持一致。 在客户端与服务端字符集不一致时:特殊字符在查询时显示为占位符(默认为?)。 不建议客户使用函数处理包含特殊字符的字符串,下表所列函数处理包含特殊字符的字符串不会产生报错,但无法保证结果的正确性。 表13 特殊字符支持的函数及高级包函数 序号 函数名/高级包函数名 1 bit_length(string) 2 btrim(string text [, characters text]) 3 char_length(string) character_length(string) 4 chr(cvalue int|bigint) chr(integer) 5 concat(str1,str2) 6 concat_ws(sep text, str"any" [, str"any" [, ...] ]) 7 decode(string text, format text) 8 dump(expr[, return_fmt [, start_position [, length ] ] ]) 9 encode(data bytea, format text) 10 find_in_set(text, set) 11 format(formatstr text [, str"any" [, ...] ]) 12 left(str text, n int) 13 length(string) 14 lengthb(text/bpchar) 15 ltrim(string [, characters]) 16 md5(string) 17 notlike(x bytea name text, y bytea text) 18 octet_length(string) 19 overlay(string placing string FROM int [for int]) 20 quote_ident(string text) 21 quote_literal(string text) 22 quote_nullable(string text) 23 rawcat(raw,raw) 24 regexp_count(string text, pattern text [, position int [, flags text]]) 25 regexp_instr(string text, pattern text [, position int [, occurrence int [, return_opt int [, flags text]]]]) 26 regexp_like(source_string, pattern [, match_parameter]) regexp_like(text,text,text) 27 regexp_matches(string text, pattern text [, flags text]) 28 regexp_replace(string, pattern, replacement [,flags ]) 29 regexp_split_to_array(string text, pattern text [, flags text ]) 30 regexp_split_to_table(string text, pattern text [, flags text]) 31 regexp_substr(source_char, pattern) regexp_substr(string text, pattern text [, position int [, occurrence int [, flags text]]]) 32 repeat(string text, number int ) 33 repexp_replace(string text, pattern text [, replacement text [, position int [, occurrence int [, flags text]]]]) 34 replace(string text, from text, to text) 35 replace(string, substring) 36 reverse(str) 37 right(str text, n int) 38 rtrim(string [, characters]) 39 sha(string) 40 sha1(string) 41 sha2(string,hash_length) 42 split_part(string text, delimiter text, field int) 43 substring(string [from int] [for int]) substring(string from pattern for escape) substring(string from pattern) 44 substring_inner(string [from int] [for int]) 45 tconvert(key text, value text) 46 to_single_byte(char) 47 translate(string text, from text, to text) 48 trim([leading |trailing |both] [characters] from string) 49 unistr(string) 50 vsize(expr) 51 PKG_UTIL.RAW_CAST_FROM_VARCHAR2 52 PKG_UTIL.LOB_CONVERTTOCLOB 53 PKG_UTIL.LOB_RAWTOTEXT 54 PKG_UTIL.LOB_TEXTTORAW 55 PKG_UTIL.RAW_CAST_TO_VARCHAR2 56 DBE_OUTPUT.PUT 57 DBE_OUTPUT.PUT_LINE
  • enable_immutable_optimization 参数说明:控制immutable类型函数是否可以被优化执行,仅当在DBCOMPATIBILITY 为A的数据库中生效。如果带有immutable定义的函数违反immutable语义,则其调用结果、其值以及对其调用者的影响均未定义。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:on 设置方式:该参数属于USERSET类型参数,请参见表2中对应设置方法进行设置。 设置建议:无。
  • a_format_disable_func 参数说明:禁用指定的系统函数。该参数的值由若干个系统函数OID值用逗号隔开组成。设置该参数的系统函数将不能被调用。 当某一系统函数不能满足用户需求并且需要使用相同函数名的自定义函数时可使用该功能。 参数类型:字符串 参数单位:无 取值范围:字符串,由若干个系统函数OID值用逗号隔开组成。 该参数仅支持禁用数据库平台兼容性行为配置项(a_format_version,a_format_dev_version)对应新增的系统函数,请参见表12。 表12 支持被禁用的系统函数 数据库平台兼容性行为配置项 支持被禁用的系统函数 10c,s1 anyarray array_extendnull(anyarray,int4,int4); -- funcoid: 6018 clob empty_clob(); -- funcoid: 3825 int4 instrb(text,text); -- funcoid: 3240 int4 instrb(text,text,int4); -- funcoid: 3241 int4 instrb(text,text,int4,int4); -- funcoid: 3242 numeric months_between(timestamp,timestamp); -- funcoid: 1522 timestamp round(timestamp); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='round' and pronamespace=11 and pronargs=1 and allargtypes[0]=1114; timestamp round(timestamp,text); -- funcoid: 4465 timestamp to_date(text,text,bool); -- funcoid: 1524 timestamp to_date(text,text,text,bool); -- funcoid: 1525 numeric to_number(text,text,bool); -- funcoid: 1787 numeric to_number(text,text,text,bool); -- funcoid: 1788 timestamp to_timestamp(text,text,bool); -- funcoid: 606 timestamp to_timestamp(text,text,text,bool); -- funcoid: 607 timestamptz to_timestamp_tz(text); -- funcoid: 1806 timestamptz to_timestamp_tz(text,text); -- funcoid: 1807 timestamptz to_timestamp_tz(text,text,bool); -- funcoid: 1808 timestamptz to_timestamp_tz(text,text,text,bool); -- funcoid: 1809 10c,s2 text DBTimezone(); -- funcoid: 5562 int8 ascii2(text); -- funcoid: 1625 text asciistr(text); -- funcoid: 1626 text asciistr(blob); -- funcoid: 1629 int4 bit2coding(text); -- funcoid: 9311 int4 bit4coding(text); -- funcoid: 9325 float8 cosh(float8); -- funcoid: 1548 numeric cosh(numeric); -- funcoid: 1549 timestamptz current_timestamp(numeric); -- funcoid: 3257 text dump(any); -- funcoid: 9086 text dump(any,int4); -- funcoid: 9088 text dump(any,int4,int4); -- funcoid: 9089 text dump(any,int4,int4,int4); -- funcoid: 9090 float4 nanvl(float4,float4); -- funcoid: 7112 float4 nanvl(float4,numeric); -- funcoid: 7115 float8 nanvl(float8,float8); -- funcoid: 7113 float4 nanvl(numeric,float4); -- funcoid: 7116 numeric nanvl(numeric,numeric); -- funcoid: 7114 timestamp new_time(timestamp,text,text); -- funcoid: 374 text nls_lower(text); -- funcoid: 4082 text nls_lower(text,text); -- funcoid: 4083 text nls_upper(text); -- funcoid: 4084 text nls_upper(text,text); -- funcoid: 4085 interval numtoyminterval(numeric,text); -- funcoid: 9333 int8 ora_hash(any); -- funcoid: 6127 int8 ora_hash(any,int8); -- funcoid: 6128 text rawtohex2(any); -- funcoid: 9540 numeric remainder(int8,int8); -- funcoid: 9767 numeric remainder(int2,int2); -- funcoid: 9765 numeric remainder(int4,int4); -- funcoid: 9766 float4 remainder(float4,float4); -- funcoid: 9771 float4 remainder(float4,numeric); -- funcoid: 9768 float8 remainder(float8,float8); -- funcoid: 9770 float4 remainder(numeric,float4); -- funcoid: 9769 numeric remainder(numeric,numeric); -- funcoid: 9761 numeric remainder(int1,int1); -- funcoid: 9764 text session_time_zone(); -- funcoid: 9571 float8 sinh(float8); -- funcoid: 1546 numeric sinh(numeric); -- funcoid: 1547 timestamp sys_extract_utc(timestamp); -- funcoid: 5258 timestamp sys_extract_utc(timestamptz); -- funcoid: 5259 float8 tanh(float8); -- funcoid: 9762 numeric tanh(numeric); -- funcoid: 9763 float8 to_binary_double(text); -- funcoid: 9669 float8 to_binary_double(text,text); -- funcoid: 9670 float8 to_binary_double(text,text,bool); -- funcoid: 9671 float8 to_binary_double(text,text,text,bool); -- funcoid: 9672 float4 to_binary_float(text); -- funcoid: 9673 float4 to_binary_float(text,text); -- funcoid: 9674 float4 to_binary_float(text,text,bool); -- funcoid: 9675 float4 to_binary_float(text,text,text,bool); -- funcoid: 9676 blob to_blob(any); -- funcoid: 6990 interval to_dsinterval(text); -- funcoid: 9126 interval to_dsinterval(text,text,bool); -- funcoid: 9127 text to_multi_byte(text); -- funcoid: 9537 text to_multi_byte(blob); -- funcoid: 9539 varchar to_nchar(int8); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='to_nchar' and pronamespace=11 and pronargs=1 and allargtypes[0]=20; varchar to_nchar(int2); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='to_nchar' and pronamespace=11 and pronargs=1 and allargtypes[0]=21; varchar to_nchar(int4); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='to_nchar' and pronamespace=11 and pronargs=1 and allargtypes[0]=23; text to_nchar(text); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='to_nchar' and pronamespace=11 and pronargs=1 and allargtypes[0]=25; varchar to_nchar(float4); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='to_nchar' and pronamespace=11 and pronargs=1 and allargtypes[0]=700; varchar to_nchar(float8); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='to_nchar' and pronamespace=11 and pronargs=1 and allargtypes[0]=701; varchar to_nchar(numeric); -- funcoid: 通过查询语句获取 select oid from pg_proc where proname='to_nchar' and pronamespace=11 and pronargs=1 and allargtypes[0]=1700; text to_nchar(timestamp); -- funcoid: 5698 text to_nchar(timestamptz); -- funcoid: 5699 text to_nchar(anyset); -- funcoid: 5700 text to_nchar(int8,text); -- funcoid: 5694 text to_nchar(int4,text); -- funcoid: 5693 text to_nchar(float4,text); -- funcoid: 5695 text to_nchar(float8,text); -- funcoid: 5696 text to_nchar(timestamp,text); -- funcoid: 5697 text to_nchar(timestamptz,text); -- funcoid: 5691 text to_nchar(interval,text); -- funcoid: 5690 text to_nchar(numeric,text); -- funcoid: 5692 text to_single_byte(text); -- funcoid: 9536 text to_single_byte(blob); -- funcoid: 9538 interval to_yminterval(text); -- funcoid: 9124 interval to_yminterval(text,text,bool); -- funcoid: 9125 text tz_offset(text); -- funcoid: 706 text unistr(text); -- funcoid: 9081 text unistr(blob); -- funcoid: 9082 int4 vsize(any); -- funcoid: 9083 10c,s4 clob getclobval(xml); -- funcoid: 8011 varchar getstringval(xml); -- funcoid: 6976 nvarchar2 nchr(int8); -- funcoid: 1694 timestamptz to_timestamp_tz(text,text,text); -- funcoid: 1804 timestamptz to_timestamp_tz(text,text,text,text,bool); -- funcoid: 1805 默认值:'' 设置方式:该参数属于SUSET类型参数,请参见表2中对应设置方法进行设置。 设置建议:数据库平台兼容性行为配置项(a_format_version,a_format_dev_version)未开启时其对应新增的系统函数默认不可用,无须使用该参数进行禁用。
  • enable_object_special_character 参数说明:控制执行CREATE EXTENSION语句时,若脚本文件中使用"@extschema@",此时control文件中schema参数的值是否可以包含["$'\]中任意特殊字符。 该参数属于SIGHUP类型参数,请参见表2中对应设置方法进行设置。 取值范围:布尔型 on表示开启,可以包含["$'\]中任意特殊字符。 off表示关闭,不可以包含["$'\]中任意特殊字符。 默认值:off 扩展功能为内部使用功能,不建议用户使用。
  • auto_increment_cache 参数说明:对自动增长列批量插入或导入触发自增时,预留自增缓存值的个数。预留自增值时刷新自增计数器为自增缓存值的最大值,缓存值使用完毕之前,自增计数器值不变,触发自增使用缓存的值。 预留的缓存值仅在语句内有效,若预留的自增缓存值没有全部被使用,后续插入语句基于自增计数器触发自增,会出现表中自动增长列的值不连续的情况。 并行导入或插入自动增长列触发自增时,每个并行线程预留的缓存值也只在其线程中使用,未完全使用完毕的话,也会出现表中自动增长列的值不连续的情况。 对已有数据的表添加自动增长列或修改某列为自动增长列时,已有数据触发自增,预留自增缓存值也受此参数影响。 此参数不影响本地临时表中的自动增长列。 仅在b_format_version='5.7'且b_format_dev_version='s2'时生效。 默认值:0 参数类型:整型 参数单位:无 取值范围:0 ~ INT_MAX 参数值为0时,自动预留自增缓存值。 第一次触发自增时,若已知即将插入自动增长列的行数,预留已知数量的值。 例如:“INSERT INTO table SELECT ...”和COPY FROM触发自增值无法获取即将插入的行数。ALTER TABLE命令表数据重写时,若触发自增,使用统计信息中的reltuples作为即将预留的行数。 “INSERT INTO table VALUES(...),(...),...”由于要分布到不同DN,在某些执行计划中,DN获取不到即将插入的行数。 若行数未知,每次预留2^n个值,例如,第一次自增预留1个值,第二次自增预留2个值,第三次预留4个值,第四次预留8个值,以此类推,若预留值个数超过65535,预留65535个值。 参数值不为0时,预留缓存值的数量为参数值。 第一次触发自增时,若已知即将插入自动增长列的行数,预留已知数量的值。 若行数未知,每次预留auto_increment_cache数量的自增值。 默认值:0 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,若默认情况产生自增值不连续的情况,可以根据用户即将批量插入数据量调整参数值。参数值越大,批量插入性能越优,也更可能产生不连续的自增值。
  • disable_keyword_options 参数说明:数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。设置该参数的标识符将不会作为关键字使用。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 非M-Compatibility下取值范围:字符串,支持设置以下关键字:auto_increment、change、charset、columns、compile、completion、containing、convert、csn、datetime、db4aishot、dbtimezone、discard_path、distributed、dumpfile、ends、entityescaping、escaped、evalname、event、events、expdp、extend、gsiusable、gsivalid、gsiwaitall、finish、ilm_pidx_list、impdp、ifnull、invisible、json_object、lines、link、lnnvl、load_discard、locked、mark、nocache、noentityescaping、noextend、noscale、nvl2、ordinality、outfile、performance、pivot、public、recover、regexp_like、scale、schedule、separator、sessiontimezone、shrink、slave、specification、starting、starts、subpartitions、substr、unpivot、verify、visible、wellformed、xmltype、regexp、rlike、zerofill。 非M-Compatibility下默认值:"datetime,regexp,rlike,zerofill"。 M-Compatibility下取值范围:字符串,支持设置以下关键字:active、admin、array、authentication、buckets、bulk、challenge_response、clone、component、cume_dist、definition、dense_rank、description、empty、enforced、engine_attribute、except、exclude、factor、failed_login_attempts、finish、first_value、following、generate、geomcollection、get_master_public_key、get_source_public_key、grouping、groups、gtid_only、histogram、history、inactive、initial、initiate、intersect、invisible、json_table、json_value、keyring、lag、last_value、lateral、lead、locked、master_compression_algorithms、master_public_key_path、master_tls_ciphersuites、master_zstd_compression_level、member、nested、nowait、nth_value、ntile、nulls、of、off、oj、old、optional、ordinality、organization、others、over、password_lock_time、path、percent_rank、persist、persist_only、preceding、privilege_checks_user、process、random、rank、recursive、reference、registration、replica、replicas、require_row_format、resource、respect、restart、retain、returning、reuse、role、row_number、secondary、secondary_engine、secondary_engine_attribute、secondary_load、secondary_unload、skip、source_auto_position、source_bind、source_compression_algorithms、source_connect_retry、source_delay、source_heartbeat_period、source_host、source_log_file、source_log_pos、source_password、source_port、source_public_key_path、source_retry_count、source_ssl、source_ssl_ca、source_ssl_capath、source_ssl_cert、source_ssl_cipher、source_ssl_crl、source_ssl_crlpath、source_ssl_key、source_ssl_verify_server_cert、source_tls_ciphersuites、source_tls_version、source_user、source_zstd_compression_level、srid、stream、system、thread_priority、ties、tls、unbounded、unregister、url、vcpu、visible、window、zone、lc_collate、least、load_bad、load_discard、location、minvalue、move、nocycle、node、nomaxvalue、nominvalue、nvl、nvl2、oids、operator、owned、prepared、recyclebin、reindex、reject、relative、scroll、sequence、setof、shippable、size、slice、smalldatetime、smalldatetime_format、split、stable、stdin、stdout、strict、substring、sysdate、trim、unusable、vacuum、valid、varchar2、verbose、version、within、xmlattributes、xmlconcat、xmlelement、xmlforest、xmlpi、xmlroot、xmltype。 M-Compatibility下默认值:"" 该参数打开后,作为关键字使用的部分功能会失效,请谨慎使用。
  • disable_plsql_keyword_options 参数说明:用于将设置的标识符当作非关键字使用。数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。 参数类型:字符串 参数单位:无 取值范围: PIPE PIPELINED RANGE REPLACE SUBTYPE '' 默认值:'' 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:无 该参数打开后,作为关键字使用的部分功能会失效,请谨慎使用。 如需取消屏蔽plsql关键字功能,请将该参数设置为空值。
  • plpgsql.variable_conflict 参数说明:设置同名的存储过程变量和表的列的使用优先级。 该参数属于USERSET类型参数,仅支持表1中对应设置方法3进行设置。 取值范围:字符串 error表示遇到存储过程变量和表的列名同名则编译报错。 use_variable表示存储过程变量和表的列名同名则优先使用变量。 use_column表示存储过程变量和表的列名同名则优先使用列名。 默认值:error
共100000条